...

Source file src/github.com/letsencrypt/boulder/rocsp/rocsp_test.go

Documentation: github.com/letsencrypt/boulder/rocsp

     1  package rocsp
     2  
     3  import (
     4  	"bytes"
     5  	"context"
     6  	"fmt"
     7  	"os"
     8  	"testing"
     9  	"time"
    10  
    11  	"github.com/jmhodges/clock"
    12  	"github.com/letsencrypt/boulder/cmd"
    13  	"github.com/letsencrypt/boulder/metrics"
    14  	"github.com/redis/go-redis/v9"
    15  	"golang.org/x/crypto/ocsp"
    16  )
    17  
    18  func makeClient() (*RWClient, clock.Clock) {
    19  	CACertFile := "../test/redis-tls/minica.pem"
    20  	CertFile := "../test/redis-tls/boulder/cert.pem"
    21  	KeyFile := "../test/redis-tls/boulder/key.pem"
    22  	tlsConfig := cmd.TLSConfig{
    23  		CACertFile: CACertFile,
    24  		CertFile:   CertFile,
    25  		KeyFile:    KeyFile,
    26  	}
    27  	tlsConfig2, err := tlsConfig.Load(metrics.NoopRegisterer)
    28  	if err != nil {
    29  		panic(err)
    30  	}
    31  
    32  	rdb := redis.NewRing(&redis.RingOptions{
    33  		Addrs: map[string]string{
    34  			"shard1": "10.33.33.2:4218",
    35  			"shard2": "10.33.33.3:4218",
    36  		},
    37  		Username:  "unittest-rw",
    38  		Password:  "824968fa490f4ecec1e52d5e34916bdb60d45f8d",
    39  		TLSConfig: tlsConfig2,
    40  	})
    41  	clk := clock.NewFake()
    42  	return NewWritingClient(rdb, 5*time.Second, clk, metrics.NoopRegisterer), clk
    43  }
    44  
    45  func TestSetAndGet(t *testing.T) {
    46  	client, _ := makeClient()
    47  	fmt.Println(client.Ping(context.Background()))
    48  
    49  	respBytes, err := os.ReadFile("testdata/ocsp.response")
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  
    54  	response, err := ocsp.ParseResponse(respBytes, nil)
    55  	if err != nil {
    56  		t.Fatal(err)
    57  	}
    58  	err = client.StoreResponse(context.Background(), response)
    59  	if err != nil {
    60  		t.Fatalf("storing response: %s", err)
    61  	}
    62  
    63  	serial := "ffaa13f9c34be80b8e2532b83afe063b59a6"
    64  	resp2, err := client.GetResponse(context.Background(), serial)
    65  	if err != nil {
    66  		t.Fatalf("getting response: %s", err)
    67  	}
    68  	if !bytes.Equal(resp2, respBytes) {
    69  		t.Errorf("response written and response retrieved were not equal")
    70  	}
    71  }
    72  

View as plain text