@REM  -----------------------------------------------------------------
@REM
@REM  crypto.cmd - DanGriff
@REM     Applies MAC and signature to a list of crypto components
@REM
@REM  Copyright (c) Microsoft Corporation. All rights reserved.
@REM
@REM  -----------------------------------------------------------------
@if defined _CPCMAGIC goto CPCBegin
@perl -x "%~f0" %*
@goto :EOF
#!perl
use strict;
use lib $ENV{RAZZLETOOLPATH} . "\\PostBuildScripts";
use lib $ENV{RAZZLETOOLPATH};
use PbuildEnv;
use ParseArgs;

sub Usage { print<<USAGE; exit(1) }
crypto [-l <language>]

Applies MAC and signature to a list of crypto components
USAGE

parseargs('?' => \&Usage);


#             *** TEMPLATE CODE ***
$ENV{"_CPCMAGIC"}++;exit(system($0)>>8);
__END__
@:CPCBegin
@set _CPCMAGIC=
@setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
@if not defined DEBUG echo off
@REM          *** CMD SCRIPT BELOW ***

REM
REM Based on the postbuild environment, determine the appropriate 
REM signature processing to be done.
REM

if "1" == "%vaultsign%" (

  REM Check for binplaced marker file to verify that
  REM advapi32.dll was built to require Vault Signatures.
  if not exist %_NTPOSTBLD%\dump\advapi_vaultsign.txt (
    call errmsg "VAULTSIGN is set, but advapi32.dll was not built with that option."
    goto :EOF
  )
)

set CERT_FILE=%RazzleToolPath%\driver.pfx
set CSP_SIGN_CMD=signtool sign /sha1 1A5CF75B20507DF3BE451504D35274E8F06080D1    


REM MS Software CSPs
call :SignFile dssenh.dll
call :SignFile rsaenh.dll

REM Smart Card CSPs
call :SignFile gpkcsp.dll
call :SignFile slbcsp.dll
call :SignFile sccbase.dll

goto :EOF


:SignFile
set image=%_NTPOSTBLD%\%1

REM imagecfg can't be called with ExecuteCmd since it does not set error values
call logmsg "Executing imagecfg -n %Image%"
imagecfg -n %Image%

call logmsg "Executing %CSP_SIGN_EXE% on %Image%"
%CSP_SIGN_CMD% %Image%
if not "%errorlevel%" == "0" (
  call errmsg "%CSP_SIGN_EXE% failed on %Image%"
)

:end
