| OLD | NEW |
| 1 This test data was produced by creating a self-signed RSA cert using OpenSSL, | 1 This test data was produced by creating a self-signed RSA cert using OpenSSL, |
| 2 and then extracting the relevant fields. | 2 and then extracting the relevant fields. |
| 3 | 3 |
| 4 It uses RSA PKCS#1 v1.5 with SHA-512 and a 2048-bit key. | 4 It uses RSA PKCS#1 v1.5 with SHA-512 and a 2048-bit key. |
| 5 | 5 |
| 6 (1) Generate self-signed certificate | 6 (1) Generate self-signed certificate |
| 7 | 7 |
| 8 openssl genrsa -out rsa_key.pem 2048 | 8 openssl genrsa -out rsa_key.pem 2048 |
| 9 openssl req -new -key rsa_key.pem -x509 -nodes -days 365 -sha512 -out cert.pem | 9 openssl req -new -key rsa_key.pem -x509 -nodes -days 365 -sha512 -out cert.pem |
| 10 | 10 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 | 28 |
| 29 (5) Extract the signature | 29 (5) Extract the signature |
| 30 | 30 |
| 31 # Find the final offset of BIT STRING (506 in this case) | 31 # Find the final offset of BIT STRING (506 in this case) |
| 32 openssl asn1parse -in cert.pem | 32 openssl asn1parse -in cert.pem |
| 33 | 33 |
| 34 openssl asn1parse -in cert.pem -out sig -noout -strparse 506 | 34 openssl asn1parse -in cert.pem -out sig -noout -strparse 506 |
| 35 base64 sig | 35 base64 sig |
| 36 | 36 |
| 37 | 37 |
| 38 | 38 $ openssl asn1parse -i < [PUBLIC KEY] |
| 39 0:d=0 hl=4 l= 290 cons: SEQUENCE |
| 40 4:d=1 hl=2 l= 13 cons: SEQUENCE |
| 41 6:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption |
| 42 17:d=2 hl=2 l= 0 prim: NULL |
| 43 19:d=1 hl=4 l= 271 prim: BIT STRING |
| 39 -----BEGIN PUBLIC KEY----- | 44 -----BEGIN PUBLIC KEY----- |
| 40 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzcu2shJRrXFAwMkf30y2AY1zIg9VF/h | 45 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzcu2shJRrXFAwMkf30y2AY1zIg9VF/h |
| 41 egYcejzdR2AzUb8vU2TXld2i8pp44l+DrvtqmzS7G+yxx3uOx+zsoqBaUT0c9HfkbE+IRmcLkQF | 46 egYcejzdR2AzUb8vU2TXld2i8pp44l+DrvtqmzS7G+yxx3uOx+zsoqBaUT0c9HfkbE+IRmcLkQF |
| 42 vYpSpm6Eu8OS14CSmEtiR91Et8LR0+bd0Gn3pgmb+epFJBaBPeDSiI/smqKCs7yP04+tS4Q4r47 | 47 vYpSpm6Eu8OS14CSmEtiR91Et8LR0+bd0Gn3pgmb+epFJBaBPeDSiI/smqKCs7yP04+tS4Q4r47 |
| 43 G04LhSp4/hmqH32b4Gcm9nsihHV9FfPfVdxDQUEJp3AgyBPwhPZEAyhoQS73TjjxXHqJRSz37Sl | 48 G04LhSp4/hmqH32b4Gcm9nsihHV9FfPfVdxDQUEJp3AgyBPwhPZEAyhoQS73TjjxXHqJRSz37Sl |
| 44 ueMVPuNncqbT4nAMKz25J1CtRlQh21uZzfY2QRP3m6rAZquQUos1febC6A7qmhQljWKKmXtfVY+ | 49 ueMVPuNncqbT4nAMKz25J1CtRlQh21uZzfY2QRP3m6rAZquQUos1febC6A7qmhQljWKKmXtfVY+ |
| 45 fAamstdHrWwIDAQAB | 50 fAamstdHrWwIDAQAB |
| 46 -----END PUBLIC KEY----- | 51 -----END PUBLIC KEY----- |
| 47 | 52 |
| 48 $ openssl asn1parse -i < [PUBLIC KEY] | |
| 49 0:d=0 hl=4 l= 290 cons: SEQUENCE | |
| 50 4:d=1 hl=2 l= 13 cons: SEQUENCE | |
| 51 6:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption | |
| 52 17:d=2 hl=2 l= 0 prim: NULL | |
| 53 19:d=1 hl=4 l= 271 prim: BIT STRING | |
| 54 | |
| 55 | |
| 56 | |
| 57 -----BEGIN ALGORITHM----- | |
| 58 MA0GCSqGSIb3DQEBDQUA | |
| 59 -----END ALGORITHM----- | |
| 60 | |
| 61 $ openssl asn1parse -i < [ALGORITHM] | 53 $ openssl asn1parse -i < [ALGORITHM] |
| 62 0:d=0 hl=2 l= 13 cons: SEQUENCE | 54 0:d=0 hl=2 l= 13 cons: SEQUENCE |
| 63 2:d=1 hl=2 l= 9 prim: OBJECT :sha512WithRSAEncryption | 55 2:d=1 hl=2 l= 9 prim: OBJECT :sha512WithRSAEncryption |
| 64 13:d=1 hl=2 l= 0 prim: NULL | 56 13:d=1 hl=2 l= 0 prim: NULL |
| 65 | 57 -----BEGIN ALGORITHM----- |
| 66 | 58 MA0GCSqGSIb3DQEBDQUA |
| 59 -----END ALGORITHM----- |
| 67 | 60 |
| 68 -----BEGIN DATA----- | 61 -----BEGIN DATA----- |
| 69 MIICRaADAgECAgkA7jWRLkwHvHswDQYJKoZIhvcNAQENBQAwRTELMAkGA1UEBhMCQVUxEzARBgN | 62 MIICRaADAgECAgkA7jWRLkwHvHswDQYJKoZIhvcNAQENBQAwRTELMAkGA1UEBhMCQVUxEzARBgN |
| 70 VBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xNT | 63 VBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xNT |
| 71 A3MjgwMjIyMzFaFw0xNjA3MjcwMjIyMzFaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lL | 64 A3MjgwMjIyMzFaFw0xNjA3MjcwMjIyMzFaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lL |
| 72 VN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB | 65 VN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB |
| 73 AQUAA4IBDwAwggEKAoIBAQDNy7ayElGtcUDAyR/fTLYBjXMiD1UX+F6Bhx6PN1HYDNRvy9TZNeV | 66 AQUAA4IBDwAwggEKAoIBAQDNy7ayElGtcUDAyR/fTLYBjXMiD1UX+F6Bhx6PN1HYDNRvy9TZNeV |
| 74 3aLymnjiX4Ou+2qbNLsb7LHHe47H7OyioFpRPRz0d+RsT4hGZwuRAW9ilKmboS7w5LXgJKYS2JH | 67 3aLymnjiX4Ou+2qbNLsb7LHHe47H7OyioFpRPRz0d+RsT4hGZwuRAW9ilKmboS7w5LXgJKYS2JH |
| 75 3US3wtHT5t3QafemCZv56kUkFoE94NKIj+yaooKzvI/Tj61LhDivjsbTguFKnj+GaoffZvgZyb2 | 68 3US3wtHT5t3QafemCZv56kUkFoE94NKIj+yaooKzvI/Tj61LhDivjsbTguFKnj+GaoffZvgZyb2 |
| 76 eyKEdX0V899V3ENBQQmncCDIE/CE9kQDKGhBLvdOOPFceolFLPftKW54xU+42dyptPicAwrPbkn | 69 eyKEdX0V899V3ENBQQmncCDIE/CE9kQDKGhBLvdOOPFceolFLPftKW54xU+42dyptPicAwrPbkn |
| 77 UK1GVCHbW5nN9jZBE/ebqsBmq5BSizV95sLoDuqaFCWNYoqZe19Vj58Bqay10etbAgMBAAGjUDB | 70 UK1GVCHbW5nN9jZBE/ebqsBmq5BSizV95sLoDuqaFCWNYoqZe19Vj58Bqay10etbAgMBAAGjUDB |
| 78 OMB0GA1UdDgQWBBRsCPajkEscZM6SpLbNTa/7dY5azzAfBgNVHSMEGDAWgBRsCPajkEscZM6SpL | 71 OMB0GA1UdDgQWBBRsCPajkEscZM6SpLbNTa/7dY5azzAfBgNVHSMEGDAWgBRsCPajkEscZM6SpL |
| 79 bNTa/7dY5azzAMBgNVHRMEBTADAQH/ | 72 bNTa/7dY5azzAMBgNVHRMEBTADAQH/ |
| 80 -----END DATA----- | 73 -----END DATA----- |
| 81 | 74 |
| 82 | 75 $ openssl asn1parse -i < [SIGNATURE] |
| 83 | 76 0:d=0 hl=4 l= 257 prim: BIT STRING |
| 84 -----BEGIN SIGNATURE----- | 77 -----BEGIN SIGNATURE----- |
| 85 A4IBAQAhKSNq+X/CfzhtNsMo6MJpTBjJBV5fhHerIZr6e3ozCTBCR29vYsVnJ4/6i5lL1pNeOhM | 78 A4IBAQAhKSNq+X/CfzhtNsMo6MJpTBjJBV5fhHerIZr6e3ozCTBCR29vYsVnJ4/6i5lL1pNeOhM |
| 86 ldthnuSlMzTS1Zme1OqRWB3U8QmwCFwhDxW/i4fdT8kxDAmELNp4z0GcXbe27V895PE0R/m8P47 | 79 ldthnuSlMzTS1Zme1OqRWB3U8QmwCFwhDxW/i4fdT8kxDAmELNp4z0GcXbe27V895PE0R/m8P47 |
| 87 B6xbra+SQlEMW12K1EndUqrO6vgLbobV14mveWdgc0KIOnDKgsTHV8NTV1w3qtp1ujfvizYfBZu | 80 B6xbra+SQlEMW12K1EndUqrO6vgLbobV14mveWdgc0KIOnDKgsTHV8NTV1w3qtp1ujfvizYfBZu |
| 88 yyMOA1yZPDpREZtClro7lufwDQ7+LgSdtNLMDAMzapfIjAEPVNVLmJzMgzaHqMsZM8gP8vWAdfc | 81 yyMOA1yZPDpREZtClro7lufwDQ7+LgSdtNLMDAMzapfIjAEPVNVLmJzMgzaHqMsZM8gP8vWAdfc |
| 89 R4mCmWXVotrM6d1rjJGdRADAONYCC4/+d1IMkVGoVfpaej6I | 82 R4mCmWXVotrM6d1rjJGdRADAONYCC4/+d1IMkVGoVfpaej6I |
| 90 -----END SIGNATURE----- | 83 -----END SIGNATURE----- |
| 91 | |
| 92 $ openssl asn1parse -i < [SIGNATURE] | |
| 93 0:d=0 hl=4 l= 257 prim: BIT STRING | |
| OLD | NEW |