106 lines
2.6 KiB
Go
106 lines
2.6 KiB
Go
package rocsp_config
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/letsencrypt/boulder/test"
|
|
"golang.org/x/crypto/ocsp"
|
|
)
|
|
|
|
func TestLoadIssuers(t *testing.T) {
|
|
input := map[string]int{
|
|
"../../test/hierarchy/int-e1.cert.pem": 23,
|
|
"../../test/hierarchy/int-r3.cert.pem": 99,
|
|
}
|
|
output, err := LoadIssuers(input)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var e1 *ShortIDIssuer
|
|
var r3 *ShortIDIssuer
|
|
|
|
for i, v := range output {
|
|
if strings.Contains(v.Certificate.Subject.String(), "E1") {
|
|
e1 = &output[i]
|
|
}
|
|
if strings.Contains(v.Certificate.Subject.String(), "R3") {
|
|
r3 = &output[i]
|
|
}
|
|
}
|
|
|
|
test.AssertEquals(t, e1.Subject.String(), "CN=(TEST) Elegant Elephant E1,O=Boulder Test,C=XX")
|
|
test.AssertEquals(t, r3.Subject.String(), "CN=(TEST) Radical Rhino R3,O=Boulder Test,C=XX")
|
|
test.AssertEquals(t, e1.shortID, uint8(23))
|
|
test.AssertEquals(t, r3.shortID, uint8(99))
|
|
}
|
|
|
|
func TestFindIssuerByName(t *testing.T) {
|
|
input := map[string]int{
|
|
"../../test/hierarchy/int-e1.cert.pem": 23,
|
|
"../../test/hierarchy/int-r3.cert.pem": 99,
|
|
}
|
|
issuers, err := LoadIssuers(input)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
elephant, err := hex.DecodeString("3049310b300906035504061302585831153013060355040a130c426f756c6465722054657374312330210603550403131a28544553542920456c6567616e7420456c657068616e74204531")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
rhino, err := hex.DecodeString("3046310b300906035504061302585831153013060355040a130c426f756c64657220546573743120301e06035504031317285445535429205261646963616c205268696e6f205233")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
ocspResp := &ocsp.Response{
|
|
RawResponderName: elephant,
|
|
}
|
|
|
|
issuer, err := FindIssuerByName(ocspResp, issuers)
|
|
if err != nil {
|
|
t.Fatalf("couldn't find issuer: %s", err)
|
|
}
|
|
|
|
test.AssertEquals(t, issuer.shortID, uint8(23))
|
|
|
|
ocspResp = &ocsp.Response{
|
|
RawResponderName: rhino,
|
|
}
|
|
|
|
issuer, err = FindIssuerByName(ocspResp, issuers)
|
|
if err != nil {
|
|
t.Fatalf("couldn't find issuer: %s", err)
|
|
}
|
|
|
|
test.AssertEquals(t, issuer.shortID, uint8(99))
|
|
}
|
|
|
|
func TestFindIssuerByID(t *testing.T) {
|
|
input := map[string]int{
|
|
"../../test/hierarchy/int-e1.cert.pem": 23,
|
|
"../../test/hierarchy/int-r3.cert.pem": 99,
|
|
}
|
|
issuers, err := LoadIssuers(input)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// an IssuerNameID
|
|
issuer, err := FindIssuerByID(66283756913588288, issuers)
|
|
if err != nil {
|
|
t.Fatalf("couldn't find issuer: %s", err)
|
|
}
|
|
test.AssertEquals(t, issuer.shortID, uint8(23))
|
|
|
|
// an IssuerNameID
|
|
issuer, err = FindIssuerByID(58923463773186183, issuers)
|
|
if err != nil {
|
|
t.Fatalf("couldn't find issuer: %s", err)
|
|
}
|
|
test.AssertEquals(t, issuer.shortID, uint8(99))
|
|
}
|