1This test data was produced by creating a self-signed EC cert using OpenSSL,
2and then extracting the relevant fields.
3
4It uses ECDSA with curve secp384r1 an SHA-256.
5
6(1) Generate self-signed certificate
7
8  openssl ecparam -out ec_key.pem -name secp384r1 -genkey
9  openssl req -new -key ec_key.pem -x509 -nodes -days 365 -out cert.pem
10
11(2) Extract public key
12
13  openssl x509 -in cert.pem -pubkey -noout > pubkey.pem
14  cat pubkey.pem
15
16(3) Extract signed data (tbsCertificate)
17
18  openssl asn1parse -in cert.pem -out tbs -noout -strparse 4
19  base64 tbs
20
21(4) Extract signature algorithm
22
23  # Find the offset of the signature algorithm near the end (496 in this case)
24  openssl asn1parse -in cert.pem
25
26  openssl asn1parse -in cert.pem -out alg -noout -strparse 496
27  base64 alg
28
29(5) Extract the signature
30
31  # Find the final offset of BIT STRING (508 in this case)
32  openssl asn1parse -in cert.pem
33
34  openssl asn1parse -in cert.pem -out sig -noout -strparse 508
35  base64 sig
36
37
38$ openssl asn1parse -i < [PUBLIC KEY]
39    0:d=0  hl=2 l= 118 cons: SEQUENCE
40    2:d=1  hl=2 l=  16 cons:  SEQUENCE
41    4:d=2  hl=2 l=   7 prim:   OBJECT            :id-ecPublicKey
42   13:d=2  hl=2 l=   5 prim:   OBJECT            :secp384r1
43   20:d=1  hl=2 l=  98 prim:  BIT STRING
44-----BEGIN PUBLIC KEY-----
45MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEXFhBi+WKXuxeK9yCbC9jqEchwjCNsQ4RXAsJ07oHZ+Q
46qz55cNIY5BAhcQ0QYY5jv9BimGL9SuhUuOSuS3Pn9rrsIFGcFsihy4kDr8rq5+7RbN8bV057gW5
47emYjLtvDsQ
48-----END PUBLIC KEY-----
49
50$ openssl asn1parse -i < [ALGORITHM]
51    0:d=0  hl=2 l=  10 cons: SEQUENCE
52    2:d=1  hl=2 l=   8 prim:  OBJECT            :ecdsa-with-SHA256
53-----BEGIN ALGORITHM-----
54MAoGCCqGSM49BAMC
55-----END ALGORITHM-----
56
57-----BEGIN DATA-----
58MIIB6KADAgECAgkAtUVxft6/Vc0wCgYIKoZIzj0EAwIwbzELMAkGA1UEBhMCQVUxEzARBgNVBAg
59MClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAw
60wDYWhhMRowGAYJKoZIhvcNAQkBFgtzdXBAZm9vLmNvbTAeFw0xNTA3MDIwMDM4MTRaFw0xNjA3M
61DEwMDM4MTRaMG8xCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ
62bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxDDAKBgNVBAMMA2FoYTEaMBgGCSqGSIb3DQEJARYLc3V
63wQGZvby5jb20wdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARcWEGL5Ype7F4r3IJsL2OoRyHCMI2xDh
64FcCwnTugdn5CrPnlw0hjkECFxDRBhjmO/0GKYYv1K6FS45K5Lc+f2uuwgUZwWyKHLiQOvyurn7t
65Fs3xtXTnuBbl6ZiMu28OxCjUDBOMB0GA1UdDgQWBBR6nDgtPalG2JvSlWzdGRCi/Cu7NjAfBgNV
66HSMEGDAWgBR6nDgtPalG2JvSlWzdGRCi/Cu7NjAMBgNVHRMEBTADAQH/
67-----END DATA-----
68
69$ openssl asn1parse -i < [SIGNATURE]
70    0:d=0  hl=2 l= 105 prim: BIT STRING
71-----BEGIN SIGNATURE-----
72A2kAMGYCMQCDwMSZVJZ8qThiNTV7VX57m8fdNnNS6cXIjRYoh4SozlYWmWGh87nhmJJCeD16jVM
73CMQDkroAY8oNi8RxLUor+LozhhVgu24tu6lcp4MP8H3Zy8bBea5HerAd1AqJp3Ox7KDU=
74-----END SIGNATURE-----
75