START	lib/libcrypto/CA	2024-10-15T07:19:55Z

==== clean ====
rm -f a.out [Ee]rrs mklog *.core y.tab.h       *.pem *.serial *.txt *.attr *.old   stamp-clean stamp-root.serial stamp-intermediate.serial stamp-root.txt stamp-intermediate.txt

==== root.serial ====
echo 1000 >root.serial

==== intermediate.serial ====
echo 1000 >intermediate.serial

==== root.txt ====
true >root.txt

==== intermediate.txt ====
true >intermediate.txt

==== run-verify-intermediate ====
# generate root rsa 4096 key
openssl genrsa -out root.key.pem 4096
Generating RSA private key, 4096 bit long modulus
...................................................................................................................................................................................................................................................................................
.........................................................................................................
e is 65537 (0x010001)
# generate root cert
openssl req -batch -config /usr/src/regress/lib/libcrypto/CA/root.cnf -key root.key.pem  -new -x509 -days 365 -sha256 -extensions v3_ca -out root.cert.pem
# generate intermediate rsa 2048 key
openssl genrsa -out intermediate.key.pem 2048
Generating RSA private key, 2048 bit long modulus
.....................
.................
e is 65537 (0x010001)
# generate intermediate req
openssl req -batch -config /usr/src/regress/lib/libcrypto/CA/intermediate.cnf -new -sha256  -key intermediate.key.pem -out intermediate.csr.pem
# sign intermediate
openssl ca -batch -config /usr/src/regress/lib/libcrypto/CA/root.cnf  -extensions v3_intermediate_ca -days 10 -notext -md sha256  -in intermediate.csr.pem -out intermediate.cert.pem
Using configuration from /usr/src/regress/lib/libcrypto/CA/root.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 4096 (0x1000)
        Validity
            Not Before: Oct 15 07:22:01 2024 GMT
            Not After : Oct 25 07:22:01 2024 GMT
        Subject:
            countryName               = CA
            stateOrProvinceName       = Alberta
            organizationName          = OpenBSD
            organizationalUnitName    = So and Sos
            commonName                = Regress Intermediate CA
            emailAddress              = evilsoandsos@openbsd.org
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                FF:0D:59:F3:08:D8:AF:27:C3:23:F0:1E:FD:DE:4A:78:22:90:BE:94
            X509v3 Authority Key Identifier:
                keyid:EC:DB:88:52:76:41:05:08:D1:1D:FF:56:34:B3:6E:D7:73:1E:41:FD

            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Name Constraints: critical
                Permitted:
                  DNS:.openbsd.org
                  DNS:client
                  email:openbsd.org
                  email:@test.openbsd.org
                  URI:.openbsd.org
                  DirName: C = CA, O = OpenBSD
                  othername:<unsupported>
                Excluded:
                  IP:0.0.0.0/0.0.0.0
                  IP:0:0:0:0:0:0:0:0/0:0:0:0:0:0:0:0

Certificate is to be certified until Oct 25 07:22:01 2024 GMT (10 days)

Write out database with 1 new entries
Data Base Updated
# validate intermediate CA
openssl verify -CAfile root.cert.pem intermediate.cert.pem
intermediate.cert.pem: OK

==== run-verify-server ====
cat intermediate.cert.pem root.cert.pem > chain.pem
# genrsa server
openssl genrsa -out server.key.pem 2048
Generating RSA private key, 2048 bit long modulus
......
.........
e is 65537 (0x010001)
# server req
openssl req -batch -config /usr/src/regress/lib/libcrypto/CA/intermediate.cnf -new -sha256  -subj '/CN=server.openbsd.org/OU=So and Sos/O=OpenBSD/C=CA'  -key server.key.pem -out server.csr.pem
# server sign
openssl ca -batch -config /usr/src/regress/lib/libcrypto/CA/intermediate.cnf  -extensions server_cert -days 5 -notext -md sha256  -in server.csr.pem -out server.cert.pem
Using configuration from /usr/src/regress/lib/libcrypto/CA/intermediate.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 4096 (0x1000)
        Validity
            Not Before: Oct 15 07:22:03 2024 GMT
            Not After : Oct 20 07:22:03 2024 GMT
        Subject:
            countryName               = CA
            organizationName          = OpenBSD
            organizationalUnitName    = So and Sos
            commonName                = server.openbsd.org
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Cert Type:
                SSL Server
            Netscape Comment:
                OpenSSL Generated Server Certificate
            X509v3 Subject Key Identifier:
                17:A2:42:A9:83:1C:6A:8D:7A:41:8C:57:AB:B5:E7:68:8D:5D:5B:6F
            X509v3 Authority Key Identifier:
                keyid:FF:0D:59:F3:08:D8:AF:27:C3:23:F0:1E:FD:DE:4A:78:22:90:BE:94
                DirName:/C=CA/ST=Alberta/L=Edmonton/O=OpenBSD/OU=So and Sos/CN=Regress Root CA/emailAddress=evilsoandsos@openbsd.org
                serial:10:00

            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication
Certificate is to be certified until Oct 20 07:22:03 2024 GMT (5 days)

Write out database with 1 new entries
Data Base Updated
# validate server cert
openssl verify -purpose sslserver -CAfile chain.pem server.cert.pem
server.cert.pem: OK

==== run-verify-client ====
# genrsa client
openssl genrsa -out client.key.pem 2048
Generating RSA private key, 2048 bit long modulus
....
.......
e is 65537 (0x010001)
# client req
openssl req -batch -config /usr/src/regress/lib/libcrypto/CA/intermediate.cnf -new -sha256  -subj '/CN=client/OU=So and Sos/O=OpenBSD/C=CA'  -key client.key.pem -out client.csr.pem
# client sign
openssl ca -batch -config /usr/src/regress/lib/libcrypto/CA/intermediate.cnf  -extensions usr_cert -days 5 -notext -md sha256  -in client.csr.pem -out client.cert.pem
Using configuration from /usr/src/regress/lib/libcrypto/CA/intermediate.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 4097 (0x1001)
        Validity
            Not Before: Oct 15 07:22:05 2024 GMT
            Not After : Oct 20 07:22:05 2024 GMT
        Subject:
            countryName               = CA
            organizationName          = OpenBSD
            organizationalUnitName    = So and Sos
            commonName                = client
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Cert Type:
                SSL Client, S/MIME
            Netscape Comment:
                OpenSSL Generated Client Certificate
            X509v3 Subject Key Identifier:
                7B:38:8F:11:99:B8:C7:95:34:E3:E6:23:03:2F:51:6E:32:F3:D0:64
            X509v3 Authority Key Identifier:
                keyid:FF:0D:59:F3:08:D8:AF:27:C3:23:F0:1E:FD:DE:4A:78:22:90:BE:94

            X509v3 Key Usage: critical
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Client Authentication, E-mail Protection
            X509v3 Subject Alternative Name: critical
                email:evilsoandsos@test.openbsd.org
Certificate is to be certified until Oct 20 07:22:05 2024 GMT (5 days)

Write out database with 1 new entries
Data Base Updated
# validate client cert
openssl verify -purpose sslclient -CAfile chain.pem client.cert.pem
client.cert.pem: OK

PASS	lib/libcrypto/CA	Duration 2m10.95s