Skip to content

Commit 91cb625

Browse files
committed
enclave: allow passing source of randomness to DummyProvider
1 parent a7ded1d commit 91cb625

2 files changed

Lines changed: 29 additions & 23 deletions

File tree

enclave/attestation_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func TestNitroAttestation_Decrypt(t *testing.T) {
8080
},
8181
}
8282

83-
e, err := enclave.New(context.Background(), enclave.DummyProvider, kmsMock, privKey)
83+
e, err := enclave.New(context.Background(), enclave.DummyProvider(nil), kmsMock, privKey)
8484
require.NoError(t, err)
8585

8686
var wg sync.WaitGroup
@@ -126,7 +126,7 @@ func TestAttestation_GenerateDataKey(t *testing.T) {
126126
},
127127
}
128128

129-
e, err := enclave.New(context.Background(), enclave.DummyProvider, kmsMock, privKey)
129+
e, err := enclave.New(context.Background(), enclave.DummyProvider(nil), kmsMock, privKey)
130130
require.NoError(t, err)
131131

132132
var wg sync.WaitGroup

enclave/provider_dummy.go

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -70,28 +70,34 @@ vMVH5ygi1fMeQPNg8oWDD+3gP1GmLGMP14kHT/aPyDAHHUMrq7nSgA8SXTC9fihO
7070
sygULgtpiSjKgeg9cTvK9yhz7T0c2CxFgyhUnz4v6uZtQTJK2Q==
7171
-----END CERTIFICATE-----`
7272

73-
func DummyProvider() (Session, error) {
74-
block, _ := pem.Decode([]byte(dummyPrivKey))
75-
if block == nil || block.Type != "RSA PRIVATE KEY" {
76-
return nil, fmt.Errorf("invalid PEM block")
73+
func DummyProvider(random io.Reader) func() (Session, error) {
74+
return func() (Session, error) {
75+
block, _ := pem.Decode([]byte(dummyPrivKey))
76+
if block == nil || block.Type != "RSA PRIVATE KEY" {
77+
return nil, fmt.Errorf("invalid PEM block")
78+
}
79+
key, err := x509.ParsePKCS1PrivateKey(block.Bytes)
80+
if err != nil {
81+
return nil, fmt.Errorf("failed to parse dummy private key: %v", err)
82+
}
83+
84+
certBlock, _ := pem.Decode([]byte(dummyCert))
85+
caCert, err := x509.ParseCertificate(certBlock.Bytes)
86+
if err != nil {
87+
return nil, fmt.Errorf("failed to parse CA certificate: %v", err)
88+
}
89+
90+
if random == nil {
91+
random = rand.Reader
92+
}
93+
94+
return &dummySession{
95+
random: random,
96+
privateKey: key,
97+
caCert: caCert,
98+
caCertDER: certBlock.Bytes,
99+
}, nil
77100
}
78-
key, err := x509.ParsePKCS1PrivateKey(block.Bytes)
79-
if err != nil {
80-
return nil, fmt.Errorf("failed to parse dummy private key: %v", err)
81-
}
82-
83-
certBlock, _ := pem.Decode([]byte(dummyCert))
84-
caCert, err := x509.ParseCertificate(certBlock.Bytes)
85-
if err != nil {
86-
return nil, fmt.Errorf("failed to parse CA certificate: %v", err)
87-
}
88-
89-
return &dummySession{
90-
random: rand.Reader,
91-
privateKey: key,
92-
caCert: caCert,
93-
caCertDER: certBlock.Bytes,
94-
}, nil
95101
}
96102

97103
type dummySession struct {

0 commit comments

Comments
 (0)