Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: net/data/verify_signed_data_unittest/rsa-pkcs1-sha256.pem

Issue 1209283004: Implement VerifySignedData() for ECDSA, RSA PKCS#1 and RSA PSS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@parse_pss
Patch Set: add a test for non-BIT STRING signature value Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 This test data was produced by creating a self-signed EC cert using OpenSSL,
2 and then extracting the relevant fields.
3
4 It uses RSA PKCS#1 v1.5 with SHA-256 and a 1024-bit key.
5
6 (1) Generate self-signed certificate
7
8 openssl genrsa -out rsa_key.pem 1024
9 openssl req -new -key rsa_key.pem -x509 -nodes -days 365 -out cert.pem
10
11 (2) Extract public key
12
13 openssl x509 -in cert.pem -pubkey -noout > pubkey.pem
14 cat pubkey.pem
15
16 (3) Extract signed data (tbsCertificate)
17
18 openssl asn1parse -in cert.pem -out tbs -noout -strparse 4
19 base64 tbs
20
21 (4) Extract signature algorithm
22
23 # Find the offset of the signature algorithm near the end (491 in this case)
24 openssl asn1parse -in cert.pem
25
26 openssl asn1parse -in cert.pem -out alg -noout -strparse 491
27 base64 alg
28
29 (5) Extract the signature
30
31 # Find the final offset of BIT STRING (506 in this case)
32 openssl asn1parse -in cert.pem
33
34 openssl asn1parse -in cert.pem -out sig -noout -strparse 506
35 base64 sig
36
37
38 $ openssl asn1parse -i < [PUBLIC KEY]
39 0:d=0 hl=3 l= 159 cons: SEQUENCE
40 3:d=1 hl=2 l= 13 cons: SEQUENCE
41 5:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption
42 16:d=2 hl=2 l= 0 prim: NULL
43 18:d=1 hl=3 l= 141 prim: BIT STRING
44 -----BEGIN PUBLIC KEY-----
45 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp1JnY2zQIQRQPz7ybs6mUjHT3
46 hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA0agnwAjfB/ow4EH+3HEYV52q
47 pxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/cn318EhhQIDAQAB
48 -----END PUBLIC KEY-----
49
50
51 $ openssl asn1parse -i < [ALGORITHM]
52 0:d=0 hl=2 l= 13 cons: SEQUENCE
53 2:d=1 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption
54 13:d=1 hl=2 l= 0 prim: NULL
55 -----BEGIN ALGORITHM-----
56 MA0GCSqGSIb3DQEBCwUA
57 -----END ALGORITHM-----
58
59
60 -----BEGIN DATA-----
61 MIIB46ADAgECAgkA3l4tFOVii0UwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCQVUxEzARBgN
62 VBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1
63 UEAwwGTXkga2V5MB4XDTE1MDcwMjE3MDYzOVoXDTE2MDcwMTE3MDYzOVowVjELMAkGA1UEBhMCQ
64 VUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
65 ZDEPMA0GA1UEAwwGTXkga2V5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp
66 1JnY2zQIQRQPz7ybs6mUjHT3hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA
67 0agnwAjfB/ow4EH+3HEYV52qpxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/
68 cn318EhhQIDAQABo1AwTjAdBgNVHQ4EFgQUzQBVKTEknyLndWd2HTsBdTKvyikwHwYDVR0jBBgw
69 FoAUzQBVKTEknyLndWd2HTsBdTKvyikwDAYDVR0TBAUwAwEB/w==
70 -----END DATA-----
71
72
73 $ openssl asn1parse -i < [SIGNATURE]
74 0:d=0 hl=3 l= 129 prim: BIT STRING
75 -----BEGIN SIGNATURE-----
76 A4GBADrHSmFSJw/Gv7hs5PNzpaJwAri/sitarIZfzN/SjR+n8L8yeTEoiDb1+BkxlFvXvPHTaOK
77 oO3WlslNNOxh1W5/JkYYGOUkCcyIjnln6qS560imcr3VNjomT/M8M2Iss+rJiKau1TRuaP7H8i6
78 +Gqf3saGdr8/LnvFAdNQvkalQt
79 -----END SIGNATURE-----
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698