github.phpd.cn/hashicorp/packer@v1.3.2/builder/azure/pkcs12/mac_test.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package pkcs12 6 7 import ( 8 "encoding/asn1" 9 "testing" 10 ) 11 12 func TestVerifyMac(t *testing.T) { 13 td := macData{ 14 Mac: digestInfo{ 15 Digest: []byte{0x18, 0x20, 0x3d, 0xff, 0x1e, 0x16, 0xf4, 0x92, 0xf2, 0xaf, 0xc8, 0x91, 0xa9, 0xba, 0xd6, 0xca, 0x9d, 0xee, 0x51, 0x93}, 16 }, 17 MacSalt: []byte{1, 2, 3, 4, 5, 6, 7, 8}, 18 Iterations: 2048, 19 } 20 21 message := []byte{11, 12, 13, 14, 15} 22 password, _ := bmpString("") 23 24 td.Mac.Algorithm.Algorithm = asn1.ObjectIdentifier([]int{1, 2, 3}) 25 err := verifyMac(&td, message, password) 26 if _, ok := err.(NotImplementedError); !ok { 27 t.Errorf("err: %v", err) 28 } 29 30 td.Mac.Algorithm.Algorithm = asn1.ObjectIdentifier([]int{1, 3, 14, 3, 2, 26}) 31 err = verifyMac(&td, message, password) 32 if err != ErrIncorrectPassword { 33 t.Errorf("Expected incorrect password, got err: %v", err) 34 } 35 36 password, _ = bmpString("Sesame open") 37 err = verifyMac(&td, message, password) 38 if err != nil { 39 t.Errorf("err: %v", err) 40 } 41 42 }