constellation/image/measured-boot/measure/pcr11_test.go

62 lines
1.5 KiB
Go

/*
Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
package measure
import (
"bytes"
"testing"
"github.com/edgelesssys/constellation/v2/image/measured-boot/pesection"
"github.com/stretchr/testify/assert"
)
func TestPredictPCR11(t *testing.T) {
assert := assert.New(t)
sim := NewDefaultSimulator()
peSections := []pesection.PESection{
{
Name: ".text",
Size: 100,
Digest: [32]byte{},
},
{
Name: ".linux",
Size: 100,
Digest: [32]byte{},
Measure: true,
},
{
Name: ".initrd",
Digest: [32]byte{
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
},
Measure: true,
},
}
out := bytes.NewBuffer(nil)
assert.NoError(DescribeUKISections(out, peSections))
assert.Equal("UKI sections:\n"+
" Section 1 - .text :\tnot measured\n"+
" Section 2 - .linux ( 100 bytes):\t0da293e37ad5511c59be47993769aacb91b243f7d010288e118dc90e95aaef5a, 0000000000000000000000000000000000000000000000000000000000000000\n"+
" Section 3 - .initrd ( 0 bytes):\t15ee37e75f1e8d42080e91fdbbd2560780918c81fe3687ae6d15c472bbdaac75, 0101010101010101010101010101010101010101010101010101010101010101\n",
out.String())
assert.NoError(PredictPCR11(sim, peSections))
assert.Equal(PCR256{
0x9d, 0xfe, 0x39, 0x9f, 0xcd, 0x44, 0x32, 0x63,
0x9f, 0x0e, 0x20, 0xf4, 0x9d, 0xf8, 0x23, 0xaa,
0x66, 0xb0, 0x95, 0xf0, 0x66, 0x4f, 0x0a, 0x4b,
0x9f, 0xbd, 0xc1, 0x1e, 0xa6, 0x46, 0x83, 0xe2,
}, sim.Bank[11])
}