@@ -22,6 +22,8 @@ package attest
2222import (
2323 "bytes"
2424 "crypto"
25+ "crypto/ecdsa"
26+ "crypto/elliptic"
2527 "crypto/rand"
2628 "crypto/rsa"
2729 "testing"
@@ -397,3 +399,91 @@ func TestKeyActivationTPM20(t *testing.T) {
397399 })
398400 }
399401}
402+
403+ func Test_symBlockSizeForEK (t * testing.T ) {
404+ t .Parallel ()
405+
406+ t .Run ("rsa-2048" , func (t * testing.T ) {
407+ t .Parallel ()
408+
409+ k , err := rsa .GenerateKey (rand .Reader , 2048 )
410+ if err != nil {
411+ t .Fatalf ("unexpected error: %v" , err )
412+ }
413+
414+ symBlockSize := symBlockSizeForEK (k .Public ())
415+ if symBlockSize != 16 {
416+ t .Errorf ("unexpected symBlockSize %d; expected 16" , symBlockSize )
417+ }
418+ })
419+
420+ t .Run ("rsa-3072" , func (t * testing.T ) {
421+ t .Parallel ()
422+
423+ k , err := rsa .GenerateKey (rand .Reader , 3072 )
424+ if err != nil {
425+ t .Fatalf ("unexpected error: %v" , err )
426+ }
427+
428+ symBlockSize := symBlockSizeForEK (k .Public ())
429+ if symBlockSize != 32 {
430+ t .Errorf ("unexpected symBlockSize %d; expected 32" , symBlockSize )
431+ }
432+ })
433+
434+ t .Run ("rsa-4096" , func (t * testing.T ) {
435+ t .Parallel ()
436+
437+ k , err := rsa .GenerateKey (rand .Reader , 4096 )
438+ if err != nil {
439+ t .Fatalf ("unexpected error: %v" , err )
440+ }
441+
442+ symBlockSize := symBlockSizeForEK (k .Public ())
443+ if symBlockSize != 32 {
444+ t .Errorf ("unexpected symBlockSize %d; expected 32" , symBlockSize )
445+ }
446+ })
447+
448+ t .Run ("ecdsa-P256" , func (t * testing.T ) {
449+ t .Parallel ()
450+
451+ k , err := ecdsa .GenerateKey (elliptic .P256 (), rand .Reader )
452+ if err != nil {
453+ t .Fatalf ("unexpected error: %v" , err )
454+ }
455+
456+ symBlockSize := symBlockSizeForEK (k .Public ())
457+ if symBlockSize != 16 {
458+ t .Errorf ("unexpected symBlockSize %d; expected 16" , symBlockSize )
459+ }
460+ })
461+
462+ t .Run ("ecdsa-P384" , func (t * testing.T ) {
463+ t .Parallel ()
464+
465+ k , err := ecdsa .GenerateKey (elliptic .P384 (), rand .Reader )
466+ if err != nil {
467+ t .Fatalf ("unexpected error: %v" , err )
468+ }
469+
470+ symBlockSize := symBlockSizeForEK (k .Public ())
471+ if symBlockSize != 32 {
472+ t .Errorf ("unexpected symBlockSize %d; expected 32" , symBlockSize )
473+ }
474+ })
475+
476+ t .Run ("ecdsa-P521" , func (t * testing.T ) {
477+ t .Parallel ()
478+
479+ k , err := ecdsa .GenerateKey (elliptic .P521 (), rand .Reader )
480+ if err != nil {
481+ t .Fatalf ("unexpected error: %v" , err )
482+ }
483+
484+ symBlockSize := symBlockSizeForEK (k .Public ())
485+ if symBlockSize != 32 {
486+ t .Errorf ("unexpected symBlockSize %d; expected 32" , symBlockSize )
487+ }
488+ })
489+ }
0 commit comments