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  }