Index: net/data/verify_signed_data_unittest/rsa-pkcs1-sha256.pem |
diff --git a/net/data/verify_signed_data_unittest/rsa-pkcs1-sha256.pem b/net/data/verify_signed_data_unittest/rsa-pkcs1-sha256.pem |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8509111ea9b5a1d62c54e9c734d51c494817c2ed |
--- /dev/null |
+++ b/net/data/verify_signed_data_unittest/rsa-pkcs1-sha256.pem |
@@ -0,0 +1,86 @@ |
+This test data was produced by creating a self-signed EC cert using OpenSSL, |
+and then extracting the relevant fields. |
+ |
+It uses RSA PKCS#1 v1.5 with SHA-256 and a 1024-bit key. |
+ |
+(1) Generate self-signed certificate |
+ |
+ openssl genrsa -out rsa_key.pem 1024 |
+ openssl req -new -key rsa_key.pem -x509 -nodes -days 365 -out cert.pem |
+ |
+(2) Extract public key |
+ |
+ openssl x509 -in cert.pem -pubkey -noout > pubkey.pem |
+ cat pubkey.pem |
+ |
+(3) Extract signed data (tbsCertificate) |
+ |
+ openssl asn1parse -in cert.pem -out tbs -noout -strparse 4 |
+ base64 tbs |
+ |
+(4) Extract signature algorithm |
+ |
+ # Find the offset of the signature algorithm near the end (491 in this case) |
+ openssl asn1parse -in cert.pem |
+ |
+ openssl asn1parse -in cert.pem -out alg -noout -strparse 491 |
+ base64 alg |
+ |
+(5) Extract the signature |
+ |
+ # Find the final offset of BIT STRING (506 in this case) |
+ openssl asn1parse -in cert.pem |
+ |
+ openssl asn1parse -in cert.pem -out sig -noout -strparse 506 |
+ base64 sig |
+ |
+ |
+ |
+-----BEGIN PUBLIC KEY----- |
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp1JnY2zQIQRQPz7ybs6mUjHT3 |
+hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA0agnwAjfB/ow4EH+3HEYV52q |
+pxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/cn318EhhQIDAQAB |
+-----END PUBLIC KEY----- |
+ |
+$ openssl asn1parse -i < [PUBLIC KEY] |
+ 0:d=0 hl=3 l= 159 cons: SEQUENCE |
+ 3:d=1 hl=2 l= 13 cons: SEQUENCE |
+ 5:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption |
+ 16:d=2 hl=2 l= 0 prim: NULL |
+ 18:d=1 hl=3 l= 141 prim: BIT STRING |
+ |
+ |
+ |
+-----BEGIN ALGORITHM----- |
+MA0GCSqGSIb3DQEBCwUA |
+-----END ALGORITHM----- |
+ |
+$ openssl asn1parse -i < [ALGORITHM] |
+ 0:d=0 hl=2 l= 13 cons: SEQUENCE |
+ 2:d=1 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption |
+ 13:d=1 hl=2 l= 0 prim: NULL |
+ |
+ |
+ |
+-----BEGIN DATA----- |
+MIIB46ADAgECAgkA3l4tFOVii0UwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCQVUxEzARBgN |
+VBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1 |
+UEAwwGTXkga2V5MB4XDTE1MDcwMjE3MDYzOVoXDTE2MDcwMTE3MDYzOVowVjELMAkGA1UEBhMCQ |
+VUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0 |
+ZDEPMA0GA1UEAwwGTXkga2V5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp |
+1JnY2zQIQRQPz7ybs6mUjHT3hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA |
+0agnwAjfB/ow4EH+3HEYV52qpxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/ |
+cn318EhhQIDAQABo1AwTjAdBgNVHQ4EFgQUzQBVKTEknyLndWd2HTsBdTKvyikwHwYDVR0jBBgw |
+FoAUzQBVKTEknyLndWd2HTsBdTKvyikwDAYDVR0TBAUwAwEB/w== |
+-----END DATA----- |
+ |
+ |
+ |
+-----BEGIN SIGNATURE----- |
+A4GBADrHSmFSJw/Gv7hs5PNzpaJwAri/sitarIZfzN/SjR+n8L8yeTEoiDb1+BkxlFvXvPHTaOK |
+oO3WlslNNOxh1W5/JkYYGOUkCcyIjnln6qS560imcr3VNjomT/M8M2Iss+rJiKau1TRuaP7H8i6 |
++Gqf3saGdr8/LnvFAdNQvkalQt |
+-----END SIGNATURE----- |
+ |
+$ openssl asn1parse -i < [SIGNATURE] |
+ 0:d=0 hl=3 l= 129 prim: BIT STRING |