tpm-helpers/tpm_test.go
mudler 372d597dd3 🎨 Rename
Signed-off-by: mudler <mudler@c3os.io>
2023-01-16 12:24:36 +01:00

54 lines
1.4 KiB
Go

package tpm_test
import (
"os"
. "github.com/kairos-io/tpm-helpers"
. "github.com/kairos-io/tpm-helpers/backend"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
var _ = Describe("Simulated TPM", func() {
Context("opening socket connection", func() {
It("dials in just fine", func() {
str, err := GetPubHash(Emulated)
Expect(err).ToNot(HaveOccurred())
Expect(str).ToNot(BeEmpty())
})
})
Context("specifying a seed", func() {
It("same pubkey with same seed", func() {
str, err := GetPubHash(Emulated, WithSeed(1))
Expect(err).ToNot(HaveOccurred())
str2, err := GetPubHash(Emulated, WithSeed(1))
Expect(err).ToNot(HaveOccurred())
str3, err := GetPubHash(Emulated, WithSeed(2))
Expect(err).ToNot(HaveOccurred())
Expect(str).To(Equal(str2))
Expect(str).ToNot(Equal(str3))
})
})
Context("from a socket", func() {
// In order to run this test a swtpm socket is required. e.g.:
// swtpm socket --server type=unixio,path=/tmp/tpm-server --ctrl type=unixio,path=/tmp/tpm-ctrl --tpm2
// TPM_SOCKET=/tmp/tpm-ctrl ginkgo -r ./
socket := os.Getenv("TPM_SOCKET")
It("gets pubhash", func() {
if socket == "" {
Skip("No socket file specified")
}
b, err := Socket(socket)
Expect(err).ToNot(HaveOccurred())
str, err := GetPubHash(WithCommandChannel(b))
Expect(err).ToNot(HaveOccurred())
Expect(str).ToNot(BeEmpty())
})
})
})