]> git.proxmox.com Git - mirror_edk2.git/blame - CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestEKUCerts/SignFirmwareWithEKUs.cmd
CryptoPkg: BaseCryptLib: Add unit tests (Host and Shell based)
[mirror_edk2.git] / CryptoPkg / Test / UnitTest / Library / BaseCryptLib / TestEKUCerts / SignFirmwareWithEKUs.cmd
CommitLineData
694bfd6f
MC
1@ECHO OFF\r
2REM This script will use various certificates to sign blobs for testing purposes.\r
3REM\r
4REM\r
5REM Our EKU test certificate chain:\r
6REM ------------------------------------------\r
7REM | | // Root of trust. ECDSA P521 curve\r
8REM | TestEKUParsingRoot | // SHA 256 Key Usage: CERT_DIGITAL_SIGNATURE_KEY_USAGE\r
9REM | | // CERT_KEY_CERT_SIGN_KEY_USAGE | CERT_CRL_SIGN_KEY_USAGE\r
10REM ------------------------------------------\r
11REM ^\r
12REM |\r
13REM ------------------------------------------\r
14REM | | // Issues subordinate CAs. ECC P384 curve.\r
15REM | TestEKUParsingPolicyCA | // SHA 256 Key Usage:\r
16REM | | // CERT_KEY_CERT_SIGN_KEY_USAGE | CERT_CRL_SIGN_KEY_USAGE\r
17REM ------------------------------------------\r
18REM ^\r
19REM |\r
20REM ------------------------------------------\r
21REM | | // Issues end-entity (leaf) signers. ECC P256 curve.\r
22REM | TestEKUParsingIssuingCA | // SHA 256 Key Usage: CERT_DIGITAL_SIGNATURE_KEY_USAGE\r
23REM | | // Enhanced Key Usage:\r
24REM ------------------------------------------ // 1.3.6.1.4.1.311.76.9.21.1 (Surface firmware signing)\r
25REM ^\r
26REM |\r
27REM --------------------------------------\r
28REM / TestEKUParsingLeafSigner && / // Leaf signer, ECC P256 curve.\r
29REM / TestEKUParsingLeafSignerPid12345 / // SHA 256 Key Usage: CERT_DIGITAL_SIGNATURE_KEY_USAGE\r
30REM / / // Enhanced Key usages:\r
31REM -------------------------------------- // 1.3.6.1.4.1.311.76.9.21.1 (Surface firmware signing)\r
32REM // 1.3.6.1.4.1.311.76.9.21.1.N, N == Product ID.\r
33REM\r
34REM\r
35REM\r
36REM Dev Note: SignTool.exe must be in your path when running this script.\r
37\r
38del *.p7b\r
39ECHO -------------------------------------------------------------------\r
40ECHO Press any key 4 times to append time to the test blobs to sign.\r
41time >> TestSignWithOneEKUInLeafSigner.bin\r
42time >> TestSignWithTwoEKUsInLeafSignerPid1.bin\r
43time >> TestSignWithTwoEKUsInLeafSignerPid12345.bin\r
44time >> TestSignWithNoEKUsInLeafSigner.bin\r
45\r
46\r
47REM\r
48REM Create a signature with TestEKUParsingLeafSigner.cer which has one EKU in it,\r
49REM and add the Policy CA in the signature.\r
50REM\r
51call signtool.exe sign /fd sha256 /f TestEKUParsingLeafSigner.cer /p7 . /u 1.3.6.1.4.1.311.76.9.21.1 /ac TestEKUParsingPolicyCA.cer /p7co 1.2.840.113549.1.7.1 /p7ce DetachedSignedData /v /debug TestSignWithOneEKUInLeafSigner.bin\r
52\r
53REM\r
54REM Create a signature with two EKU's in the leaf signer. (1.3.6.1.4.1.311.76.9.21.1, and 1.3.6.1.4.1.311.76.9.21.1.1)\r
55REM\r
56call signtool.exe sign /fd sha256 /f TestEKUParsingLeafSignerPid1.cer /p7 . /u 1.3.6.1.4.1.311.76.9.21.1.1 /p7co 1.2.840.113549.1.7.1 /p7ce DetachedSignedData /v /debug TestSignWithTwoEKUsInLeafSignerPid1.bin\r
57\r
58REM\r
59REM Create a signature with two EKUs in the leaf (1.3.6.1.4.1.311.76.9.21.1, and 1.3.6.1.4.1.311.76.9.21.1.12345)\r
60REM\r
61call signtool.exe sign /fd sha256 /f TestEKUParsingLeafSignerPid12345.cer /p7 . /u 1.3.6.1.4.1.311.76.9.21.1.12345 /p7co 1.2.840.113549.1.7.1 /p7ce DetachedSignedData /v /debug TestSignWithTwoEKUsInLeafSignerPid12345.bin\r
62\r
63\r
64REM\r
65REM Create a signature with a leaf that does not have any EKUs in the signture.\r
66REM\r
67call signtool.exe sign /fd sha256 /f TestEKUParsingNoEKUsInSigner.cer /p7 . /p7co 1.2.840.113549.1.7.1 /p7ce DetachedSignedData /v /debug TestSignWithNoEKUsInLeafSigner.bin\r
68\r
69REM\r
70REM Rename *.p7 to *.p7b\r
71REM\r
72rename *.p7 *.p7b\r
73ECHO ---------------------------------------------------------------------------\r
74ECHO Now you can use your favorite "Binary To Hex" converter to convert the\r
75ECHO signatures (P7B files) to byte arrays and add them to AllTestSignatures.h\r
76ECHO ---------------------------------------------------------------------------\r