OSDN Git Service

new repo
[bytom/vapor.git] / vendor / golang.org / x / crypto / pkcs12 / mac_test.go
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 }