mirror of
https://github.com/kairos-io/tpm-helpers.git
synced 2025-07-07 19:48:37 +00:00
54 lines
1.4 KiB
Go
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())
|
|
})
|
|
})
|
|
})
|