Skip to content

Commit fc4336c

Browse files
authored
Merge pull request #593 from dajiaji/use-cryptography-x509-for-verifying-certs
Update to use cryptography.x509 for verifying certs.
2 parents 4375d02 + 32b04ac commit fc4336c

16 files changed

Lines changed: 219 additions & 58 deletions

tests/keys/cert_es256.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

tests/keys/cert_es256_2.json

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/keys/certs/ca.crt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICGTCCAb6gAwIBAgIUfRDfKDU6Ci55bkn26i7WYFYh3q0wCgYIKoZIzj0EAwIw
3+
WDELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMREwDwYDVQQHDAhTZXRhZ2F5
4+
YTERMA8GA1UECgwITXlSb290Q0ExEzARBgNVBAMMCk15IFJvb3QgQ0EwHhcNMjUw
5+
MzE2MDA0NzAyWhcNMzUwMzE0MDA0NzAyWjBYMQswCQYDVQQGEwJKUDEOMAwGA1UE
6+
CAwFVG9reW8xETAPBgNVBAcMCFNldGFnYXlhMREwDwYDVQQKDAhNeVJvb3RDQTET
7+
MBEGA1UEAwwKTXkgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNOf
8+
mjPoj91hVpZp35AReTdyzpscS9ZZYJrfPk33capHVoZVURyhBFj5DYqY+EvbPZCx
9+
vwPThpI2CU2HPLeICj2jZjBkMB0GA1UdDgQWBBQdn2hb29ekyauM/BaNqyUNha2o
10+
szAfBgNVHSMEGDAWgBQdn2hb29ekyauM/BaNqyUNha2oszASBgNVHRMBAf8ECDAG
11+
AQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNJADBGAiEA/IO5Fp9d
12+
1Dp+JxECul0Wn9l1Silqpez0mwq1c6a3iOACIQCMgs8iLS75HGqDqKFtsAf8Mu9U
13+
aG+b3xsVAO1E4MFj2w==
14+
-----END CERTIFICATE-----

tests/keys/certs/ca.pem

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICGTCCAb6gAwIBAgIUfRDfKDU6Ci55bkn26i7WYFYh3q0wCgYIKoZIzj0EAwIw
3+
WDELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMREwDwYDVQQHDAhTZXRhZ2F5
4+
YTERMA8GA1UECgwITXlSb290Q0ExEzARBgNVBAMMCk15IFJvb3QgQ0EwHhcNMjUw
5+
MzE2MDA0NzAyWhcNMzUwMzE0MDA0NzAyWjBYMQswCQYDVQQGEwJKUDEOMAwGA1UE
6+
CAwFVG9reW8xETAPBgNVBAcMCFNldGFnYXlhMREwDwYDVQQKDAhNeVJvb3RDQTET
7+
MBEGA1UEAwwKTXkgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNOf
8+
mjPoj91hVpZp35AReTdyzpscS9ZZYJrfPk33capHVoZVURyhBFj5DYqY+EvbPZCx
9+
vwPThpI2CU2HPLeICj2jZjBkMB0GA1UdDgQWBBQdn2hb29ekyauM/BaNqyUNha2o
10+
szAfBgNVHSMEGDAWgBQdn2hb29ekyauM/BaNqyUNha2oszASBgNVHRMBAf8ECDAG
11+
AQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNJADBGAiEA/IO5Fp9d
12+
1Dp+JxECul0Wn9l1Silqpez0mwq1c6a3iOACIQCMgs8iLS75HGqDqKFtsAf8Mu9U
13+
aG+b3xsVAO1E4MFj2w==
14+
-----END CERTIFICATE-----

tests/keys/certs/ca_another.crt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICGTCCAb6gAwIBAgIUOcRjF2wAY9MtpveGJhrJKzp+e3YwCgYIKoZIzj0EAwIw
3+
WDELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMREwDwYDVQQHDAhTZXRhZ2F5
4+
YTERMA8GA1UECgwITXlSb290Q0ExEzARBgNVBAMMCk15IFJvb3QgQ0EwHhcNMjUw
5+
MzE2MDEwODQ2WhcNMzUwMzE0MDEwODQ2WjBYMQswCQYDVQQGEwJKUDEOMAwGA1UE
6+
CAwFVG9reW8xETAPBgNVBAcMCFNldGFnYXlhMREwDwYDVQQKDAhNeVJvb3RDQTET
7+
MBEGA1UEAwwKTXkgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLia
8+
8183LhcQhXjf8r9RWKuaMhZaXeNfjO8IYVja1seCdl/uNmS00j9eyJQlPsSbDID7
9+
qdXIkN9QSTKYuQW2+qejZjBkMB0GA1UdDgQWBBSPv8mstGZ9xK+kULK/0kKLYKj+
10+
SDAfBgNVHSMEGDAWgBSPv8mstGZ9xK+kULK/0kKLYKj+SDASBgNVHRMBAf8ECDAG
11+
AQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNJADBGAiEAomhtSi11
12+
lPV+NUSULLyraQID76yI404MUyK/IxXdZjACIQDG+X1V7c/d07/NrPSi0+e3+6po
13+
zUWNKdtIe0UxLXiKXg==
14+
-----END CERTIFICATE-----

tests/keys/certs/ca_another.pem

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICGTCCAb6gAwIBAgIUOcRjF2wAY9MtpveGJhrJKzp+e3YwCgYIKoZIzj0EAwIw
3+
WDELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMREwDwYDVQQHDAhTZXRhZ2F5
4+
YTERMA8GA1UECgwITXlSb290Q0ExEzARBgNVBAMMCk15IFJvb3QgQ0EwHhcNMjUw
5+
MzE2MDEwODQ2WhcNMzUwMzE0MDEwODQ2WjBYMQswCQYDVQQGEwJKUDEOMAwGA1UE
6+
CAwFVG9reW8xETAPBgNVBAcMCFNldGFnYXlhMREwDwYDVQQKDAhNeVJvb3RDQTET
7+
MBEGA1UEAwwKTXkgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLia
8+
8183LhcQhXjf8r9RWKuaMhZaXeNfjO8IYVja1seCdl/uNmS00j9eyJQlPsSbDID7
9+
qdXIkN9QSTKYuQW2+qejZjBkMB0GA1UdDgQWBBSPv8mstGZ9xK+kULK/0kKLYKj+
10+
SDAfBgNVHSMEGDAWgBSPv8mstGZ9xK+kULK/0kKLYKj+SDASBgNVHRMBAf8ECDAG
11+
AQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNJADBGAiEAomhtSi11
12+
lPV+NUSULLyraQID76yI404MUyK/IxXdZjACIQDG+X1V7c/d07/NrPSi0+e3+6po
13+
zUWNKdtIe0UxLXiKXg==
14+
-----END CERTIFICATE-----

tests/keys/certs/ca_key.pem

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-----BEGIN EC PRIVATE KEY-----
2+
MHcCAQEEIPE40NcR4PbIFv6IDd2ZkHX7pnHkgPq0FCbarHVeKbxFoAoGCCqGSM49
3+
AwEHoUQDQgAE05+aM+iP3WFWlmnfkBF5N3LOmxxL1llgmt8+TfdxqkdWhlVRHKEE
4+
WPkNipj4S9s9kLG/A9OGkjYJTYc8t4gKPQ==
5+
-----END EC PRIVATE KEY-----

tests/keys/certs/create_certs.sh

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash
2+
# Create a self-signed root CA certificate, server certificate, and convert them to PEM format
3+
# The server certificate is signed by the root CA certificate
4+
# The root CA certificate is created with CA:TRUE, keyCertSign, and cRLSign extensions
5+
# The server certificate is created with the subjectAltName extension
6+
7+
# Create a self-signed root CA certificate
8+
openssl ecparam -name prime256v1 -genkey -noout -out ca.key
9+
openssl ec -in ca.key -out ca_key.der -outform DER
10+
openssl ec -inform DER -in ca_key.der -out ca_key.pem -outform PEM
11+
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -config openssl_ca.cnf
12+
openssl x509 -in ca.crt -text -noout
13+
openssl x509 -in ca.crt -out ca.der -outform DER
14+
openssl x509 -inform DER -in ca.der -out ca.pem -outform PEM
15+
16+
# Create a server certificate signed by the root CA certificate
17+
openssl ecparam -name prime256v1 -genkey -noout -out server.key
18+
openssl ec -in server.key -out server_key.der -outform DER
19+
openssl ec -inform DER -in server_key.der -out server_key.pem -outform PEM
20+
openssl req -new -key server.key -out server.csr -config openssl_server.cnf
21+
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256 -extfile openssl_server.cnf -extensions v3_req
22+
openssl x509 -in server.crt -text -noout
23+
openssl x509 -in server.crt -out server.der -outform DER
24+
openssl x509 -inform DER -in server.der -out server.pem -outform PEM

tests/keys/certs/openssl_ca.cnf

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[ req ]
2+
default_bits = 2048
3+
prompt = no
4+
default_md = sha256
5+
distinguished_name = req_distinguished_name
6+
x509_extensions = v3_ca
7+
8+
[ req_distinguished_name ]
9+
C = JP
10+
ST = Tokyo
11+
L = Setagaya
12+
O = MyRootCA
13+
CN = My Root CA
14+
15+
[ v3_ca ]
16+
subjectKeyIdentifier = hash
17+
authorityKeyIdentifier = keyid:always,issuer
18+
basicConstraints = critical, CA:TRUE, pathlen:0
19+
keyUsage = critical, keyCertSign, cRLSign
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[ req ]
2+
default_bits = 2048
3+
prompt = no
4+
default_md = sha256
5+
distinguished_name = req_distinguished_name
6+
req_extensions = v3_req
7+
8+
[ req_distinguished_name ]
9+
C = JP
10+
ST = Tokyo
11+
L = Setagaya
12+
O = MyCompany
13+
CN = test.example
14+
15+
[ v3_req ]
16+
basicConstraints = critical, CA:FALSE
17+
keyUsage = critical, digitalSignature, keyEncipherment
18+
subjectAltName = @alt_names
19+
20+
[ alt_names ]
21+
DNS.1 = test.example
22+
DNS.2 = www.test.example
23+
DNS.3 = sub.test.example

0 commit comments

Comments
 (0)