Index: net/data/verify_signed_data_unittest/rsa2048-pkcs1-sha512.pem |
diff --git a/net/data/verify_signed_data_unittest/rsa2048-pkcs1-sha512.pem b/net/data/verify_signed_data_unittest/rsa2048-pkcs1-sha512.pem |
new file mode 100644 |
index 0000000000000000000000000000000000000000..342a31b85eaa22c0f6e0a2f2ceb88b3da12800ee |
--- /dev/null |
+++ b/net/data/verify_signed_data_unittest/rsa2048-pkcs1-sha512.pem |
@@ -0,0 +1,93 @@ |
+This test data was produced by creating a self-signed RSA cert using OpenSSL, |
+and then extracting the relevant fields. |
+ |
+It uses RSA PKCS#1 v1.5 with SHA-512 and a 2048-bit key. |
+ |
+(1) Generate self-signed certificate |
+ |
+ openssl genrsa -out rsa_key.pem 2048 |
+ openssl req -new -key rsa_key.pem -x509 -nodes -days 365 -sha512 -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 (589 in this case) |
+ openssl asn1parse -in cert.pem |
+ |
+ openssl asn1parse -in cert.pem -out alg -noout -strparse 589 |
+ 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----- |
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzcu2shJRrXFAwMkf30y2AY1zIg9VF/h |
+egYcejzdR2AzUb8vU2TXld2i8pp44l+DrvtqmzS7G+yxx3uOx+zsoqBaUT0c9HfkbE+IRmcLkQF |
+vYpSpm6Eu8OS14CSmEtiR91Et8LR0+bd0Gn3pgmb+epFJBaBPeDSiI/smqKCs7yP04+tS4Q4r47 |
+G04LhSp4/hmqH32b4Gcm9nsihHV9FfPfVdxDQUEJp3AgyBPwhPZEAyhoQS73TjjxXHqJRSz37Sl |
+ueMVPuNncqbT4nAMKz25J1CtRlQh21uZzfY2QRP3m6rAZquQUos1febC6A7qmhQljWKKmXtfVY+ |
+fAamstdHrWwIDAQAB |
+-----END PUBLIC KEY----- |
+ |
+$ openssl asn1parse -i < [PUBLIC KEY] |
+ 0:d=0 hl=4 l= 290 cons: SEQUENCE |
+ 4:d=1 hl=2 l= 13 cons: SEQUENCE |
+ 6:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption |
+ 17:d=2 hl=2 l= 0 prim: NULL |
+ 19:d=1 hl=4 l= 271 prim: BIT STRING |
+ |
+ |
+ |
+-----BEGIN ALGORITHM----- |
+MA0GCSqGSIb3DQEBDQUA |
+-----END ALGORITHM----- |
+ |
+$ openssl asn1parse -i < [ALGORITHM] |
+ 0:d=0 hl=2 l= 13 cons: SEQUENCE |
+ 2:d=1 hl=2 l= 9 prim: OBJECT :sha512WithRSAEncryption |
+ 13:d=1 hl=2 l= 0 prim: NULL |
+ |
+ |
+ |
+-----BEGIN DATA----- |
+MIICRaADAgECAgkA7jWRLkwHvHswDQYJKoZIhvcNAQENBQAwRTELMAkGA1UEBhMCQVUxEzARBgN |
+VBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xNT |
+A3MjgwMjIyMzFaFw0xNjA3MjcwMjIyMzFaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lL |
+VN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB |
+AQUAA4IBDwAwggEKAoIBAQDNy7ayElGtcUDAyR/fTLYBjXMiD1UX+F6Bhx6PN1HYDNRvy9TZNeV |
+3aLymnjiX4Ou+2qbNLsb7LHHe47H7OyioFpRPRz0d+RsT4hGZwuRAW9ilKmboS7w5LXgJKYS2JH |
+3US3wtHT5t3QafemCZv56kUkFoE94NKIj+yaooKzvI/Tj61LhDivjsbTguFKnj+GaoffZvgZyb2 |
+eyKEdX0V899V3ENBQQmncCDIE/CE9kQDKGhBLvdOOPFceolFLPftKW54xU+42dyptPicAwrPbkn |
+UK1GVCHbW5nN9jZBE/ebqsBmq5BSizV95sLoDuqaFCWNYoqZe19Vj58Bqay10etbAgMBAAGjUDB |
+OMB0GA1UdDgQWBBRsCPajkEscZM6SpLbNTa/7dY5azzAfBgNVHSMEGDAWgBRsCPajkEscZM6SpL |
+bNTa/7dY5azzAMBgNVHRMEBTADAQH/ |
+-----END DATA----- |
+ |
+ |
+ |
+-----BEGIN SIGNATURE----- |
+A4IBAQAhKSNq+X/CfzhtNsMo6MJpTBjJBV5fhHerIZr6e3ozCTBCR29vYsVnJ4/6i5lL1pNeOhM |
+ldthnuSlMzTS1Zme1OqRWB3U8QmwCFwhDxW/i4fdT8kxDAmELNp4z0GcXbe27V895PE0R/m8P47 |
+B6xbra+SQlEMW12K1EndUqrO6vgLbobV14mveWdgc0KIOnDKgsTHV8NTV1w3qtp1ujfvizYfBZu |
+yyMOA1yZPDpREZtClro7lufwDQ7+LgSdtNLMDAMzapfIjAEPVNVLmJzMgzaHqMsZM8gP8vWAdfc |
+R4mCmWXVotrM6d1rjJGdRADAONYCC4/+d1IMkVGoVfpaej6I |
+-----END SIGNATURE----- |
+ |
+$ openssl asn1parse -i < [SIGNATURE] |
+ 0:d=0 hl=4 l= 257 prim: BIT STRING |