| OLD | NEW |
| 1 This test data was produced by creating a self-signed EC cert using OpenSSL, | 1 This test data was produced by creating a self-signed EC 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-256 and a 1024-bit key. | 4 It uses RSA PKCS#1 v1.5 with SHA-256 and a 1024-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 1024 | 8 openssl genrsa -out rsa_key.pem 1024 |
| 9 openssl req -new -key rsa_key.pem -x509 -nodes -days 365 -out cert.pem | 9 openssl req -new -key rsa_key.pem -x509 -nodes -days 365 -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 | |
| 39 -----BEGIN PUBLIC KEY----- | |
| 40 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp1JnY2zQIQRQPz7ybs6mUjHT3 | |
| 41 hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA0agnwAjfB/ow4EH+3HEYV52q | |
| 42 pxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/cn318EhhQIDAQAB | |
| 43 -----END PUBLIC KEY----- | |
| 44 | |
| 45 $ openssl asn1parse -i < [PUBLIC KEY] | 38 $ openssl asn1parse -i < [PUBLIC KEY] |
| 46 0:d=0 hl=3 l= 159 cons: SEQUENCE | 39 0:d=0 hl=3 l= 159 cons: SEQUENCE |
| 47 3:d=1 hl=2 l= 13 cons: SEQUENCE | 40 3:d=1 hl=2 l= 13 cons: SEQUENCE |
| 48 5:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption | 41 5:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption |
| 49 16:d=2 hl=2 l= 0 prim: NULL | 42 16:d=2 hl=2 l= 0 prim: NULL |
| 50 18:d=1 hl=3 l= 141 prim: BIT STRING | 43 18:d=1 hl=3 l= 141 prim: BIT STRING |
| 51 | 44 -----BEGIN PUBLIC KEY----- |
| 52 | 45 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp1JnY2zQIQRQPz7ybs6mUjHT3 |
| 53 | 46 hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA0agnwAjfB/ow4EH+3HEYV52q |
| 54 -----BEGIN ALGORITHM----- | 47 pxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/cn318EhhQIDAQAB |
| 55 MA0GCSqGSIb3DQEBCwUA | 48 -----END PUBLIC KEY----- |
| 56 -----END ALGORITHM----- | |
| 57 | 49 |
| 58 $ openssl asn1parse -i < [ALGORITHM] | 50 $ openssl asn1parse -i < [ALGORITHM] |
| 59 0:d=0 hl=2 l= 13 cons: SEQUENCE | 51 0:d=0 hl=2 l= 13 cons: SEQUENCE |
| 60 2:d=1 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption | 52 2:d=1 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption |
| 61 13:d=1 hl=2 l= 0 prim: NULL | 53 13:d=1 hl=2 l= 0 prim: NULL |
| 62 | 54 -----BEGIN ALGORITHM----- |
| 63 | 55 MA0GCSqGSIb3DQEBCwUA |
| 56 -----END ALGORITHM----- |
| 64 | 57 |
| 65 -----BEGIN DATA----- | 58 -----BEGIN DATA----- |
| 66 MIIB46ADAgECAgkA3l4tFOVii0UwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCQVUxEzARBgN | 59 MIIB46ADAgECAgkA3l4tFOVii0UwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCQVUxEzARBgN |
| 67 VBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1 | 60 VBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1 |
| 68 UEAwwGTXkga2V5MB4XDTE1MDcwMjE3MDYzOVoXDTE2MDcwMTE3MDYzOVowVjELMAkGA1UEBhMCQ | 61 UEAwwGTXkga2V5MB4XDTE1MDcwMjE3MDYzOVoXDTE2MDcwMTE3MDYzOVowVjELMAkGA1UEBhMCQ |
| 69 VUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0 | 62 VUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0 |
| 70 ZDEPMA0GA1UEAwwGTXkga2V5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp | 63 ZDEPMA0GA1UEAwwGTXkga2V5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp |
| 71 1JnY2zQIQRQPz7ybs6mUjHT3hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA | 64 1JnY2zQIQRQPz7ybs6mUjHT3hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA |
| 72 0agnwAjfB/ow4EH+3HEYV52qpxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/ | 65 0agnwAjfB/ow4EH+3HEYV52qpxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/ |
| 73 cn318EhhQIDAQABo1AwTjAdBgNVHQ4EFgQUzQBVKTEknyLndWd2HTsBdTKvyikwHwYDVR0jBBgw | 66 cn318EhhQIDAQABo1AwTjAdBgNVHQ4EFgQUzQBVKTEknyLndWd2HTsBdTKvyikwHwYDVR0jBBgw |
| 74 FoAUzQBVKTEknyLndWd2HTsBdTKvyikwDAYDVR0TBAUwAwEB/w== | 67 FoAUzQBVKTEknyLndWd2HTsBdTKvyikwDAYDVR0TBAUwAwEB/w== |
| 75 -----END DATA----- | 68 -----END DATA----- |
| 76 | 69 |
| 77 | 70 $ openssl asn1parse -i < [SIGNATURE] |
| 78 | 71 0:d=0 hl=3 l= 129 prim: BIT STRING |
| 79 -----BEGIN SIGNATURE----- | 72 -----BEGIN SIGNATURE----- |
| 80 A4GBADrHSmFSJw/Gv7hs5PNzpaJwAri/sitarIZfzN/SjR+n8L8yeTEoiDb1+BkxlFvXvPHTaOK | 73 A4GBADrHSmFSJw/Gv7hs5PNzpaJwAri/sitarIZfzN/SjR+n8L8yeTEoiDb1+BkxlFvXvPHTaOK |
| 81 oO3WlslNNOxh1W5/JkYYGOUkCcyIjnln6qS560imcr3VNjomT/M8M2Iss+rJiKau1TRuaP7H8i6 | 74 oO3WlslNNOxh1W5/JkYYGOUkCcyIjnln6qS560imcr3VNjomT/M8M2Iss+rJiKau1TRuaP7H8i6 |
| 82 +Gqf3saGdr8/LnvFAdNQvkalQt | 75 +Gqf3saGdr8/LnvFAdNQvkalQt |
| 83 -----END SIGNATURE----- | 76 -----END SIGNATURE----- |
| 84 | |
| 85 $ openssl asn1parse -i < [SIGNATURE] | |
| 86 0:d=0 hl=3 l= 129 prim: BIT STRING | |
| OLD | NEW |