Add test vectors for key derivation functions (#320)

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
This commit is contained in:
Daniel Weiße 2022-08-01 09:11:13 +02:00 committed by GitHub
parent 87083ca624
commit 7baf98f014
7 changed files with 432 additions and 89 deletions

View file

@ -0,0 +1,45 @@
package attestation
import (
"testing"
"github.com/edgelesssys/constellation/internal/crypto/testvector"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestDeriveClusterID(t *testing.T) {
require := require.New(t)
assert := assert.New(t)
testvector := testvector.HKDFClusterID
clusterID, err := DeriveClusterID(testvector.Secret, testvector.Salt)
require.NoError(err)
assert.Equal(testvector.Output, clusterID)
clusterIDdiff, err := DeriveClusterID(testvector.Secret, []byte("different-salt"))
require.NoError(err)
assert.NotEqual(clusterID, clusterIDdiff)
clusterIDdiff, err = DeriveClusterID([]byte("different-secret"), testvector.Salt)
require.NoError(err)
assert.NotEqual(clusterID, clusterIDdiff)
}
func TestDeriveMeasurementSecret(t *testing.T) {
require := require.New(t)
assert := assert.New(t)
testvector := testvector.HKDFMeasurementSecret
measurementSecret, err := DeriveMeasurementSecret(testvector.Secret, testvector.Salt)
require.NoError(err)
assert.Equal(testvector.Output, measurementSecret)
measurementSecretdiff, err := DeriveMeasurementSecret(testvector.Secret, []byte("different-salt"))
require.NoError(err)
assert.NotEqual(measurementSecret, measurementSecretdiff)
measurementSecretdiff, err = DeriveMeasurementSecret([]byte("different-secret"), testvector.Salt)
require.NoError(err)
assert.NotEqual(measurementSecret, measurementSecretdiff)
}