Refactor init/recovery to use kms URI

So far the masterSecret was sent to the initial bootstrapper
on init/recovery. With this commit this information is encoded
in the kmsURI that is sent during init.
For recover, the communication with the recoveryserver is
changed. Before a streaming gRPC call was used to
exchanges UUID for measurementSecret and state disk key.
Now a standard gRPC is made that includes the same kmsURI &
storageURI that are sent during init.
This commit is contained in:
Otto Bittner 2023-01-16 11:19:03 +01:00
parent 0e71322e2e
commit 9a1f52e94e
35 changed files with 466 additions and 623 deletions

View file

@ -31,21 +31,3 @@ func TestDeriveClusterID(t *testing.T) {
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)
}