rsa-pkcs1-sha256.pem 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. This test data was produced by creating a self-signed EC cert using OpenSSL,
  2. and then extracting the relevant fields.
  3. It uses RSA PKCS#1 v1.5 with SHA-256 and a 1024-bit key.
  4. (1) Generate self-signed certificate
  5. openssl genrsa -out rsa_key.pem 1024
  6. openssl req -new -key rsa_key.pem -x509 -nodes -days 365 -out cert.pem
  7. (2) Extract public key
  8. openssl x509 -in cert.pem -pubkey -noout > pubkey.pem
  9. cat pubkey.pem
  10. (3) Extract signed data (tbsCertificate)
  11. openssl asn1parse -in cert.pem -out tbs -noout -strparse 4
  12. base64 tbs
  13. (4) Extract signature algorithm
  14. # Find the offset of the signature algorithm near the end (491 in this case)
  15. openssl asn1parse -in cert.pem
  16. openssl asn1parse -in cert.pem -out alg -noout -strparse 491
  17. base64 alg
  18. (5) Extract the signature
  19. # Find the final offset of BIT STRING (506 in this case)
  20. openssl asn1parse -in cert.pem
  21. openssl asn1parse -in cert.pem -out sig -noout -strparse 506
  22. base64 sig
  23. $ openssl asn1parse -i < [PUBLIC KEY]
  24. 0:d=0 hl=3 l= 159 cons: SEQUENCE
  25. 3:d=1 hl=2 l= 13 cons: SEQUENCE
  26. 5:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption
  27. 16:d=2 hl=2 l= 0 prim: NULL
  28. 18:d=1 hl=3 l= 141 prim: BIT STRING
  29. -----BEGIN PUBLIC KEY-----
  30. MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp1JnY2zQIQRQPz7ybs6mUjHT3
  31. hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA0agnwAjfB/ow4EH+3HEYV52q
  32. pxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/cn318EhhQIDAQAB
  33. -----END PUBLIC KEY-----
  34. $ openssl asn1parse -i < [ALGORITHM]
  35. 0:d=0 hl=2 l= 13 cons: SEQUENCE
  36. 2:d=1 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption
  37. 13:d=1 hl=2 l= 0 prim: NULL
  38. -----BEGIN ALGORITHM-----
  39. MA0GCSqGSIb3DQEBCwUA
  40. -----END ALGORITHM-----
  41. -----BEGIN DATA-----
  42. MIIB46ADAgECAgkA3l4tFOVii0UwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCQVUxEzARBgN
  43. VBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1
  44. UEAwwGTXkga2V5MB4XDTE1MDcwMjE3MDYzOVoXDTE2MDcwMTE3MDYzOVowVjELMAkGA1UEBhMCQ
  45. VUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
  46. ZDEPMA0GA1UEAwwGTXkga2V5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqR+B2Mj1irNp
  47. 1JnY2zQIQRQPz7ybs6mUjHT3hf5APyaig2u6fBPThqxssgg0YviqIj/70hVK/JXcqP1zgR5AhsA
  48. 0agnwAjfB/ow4EH+3HEYV52qpxN98pUxC+1l2hgVtn8xCS/JGyjK+6dv+lZw3ixJoX2RjVtdJ4/
  49. cn318EhhQIDAQABo1AwTjAdBgNVHQ4EFgQUzQBVKTEknyLndWd2HTsBdTKvyikwHwYDVR0jBBgw
  50. FoAUzQBVKTEknyLndWd2HTsBdTKvyikwDAYDVR0TBAUwAwEB/w==
  51. -----END DATA-----
  52. $ openssl asn1parse -i < [SIGNATURE]
  53. 0:d=0 hl=3 l= 129 prim: BIT STRING
  54. -----BEGIN SIGNATURE-----
  55. A4GBADrHSmFSJw/Gv7hs5PNzpaJwAri/sitarIZfzN/SjR+n8L8yeTEoiDb1+BkxlFvXvPHTaOK
  56. oO3WlslNNOxh1W5/JkYYGOUkCcyIjnln6qS560imcr3VNjomT/M8M2Iss+rJiKau1TRuaP7H8i6
  57. +Gqf3saGdr8/LnvFAdNQvkalQt
  58. -----END SIGNATURE-----