github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/crypto/openpgp/packet/public_key_v3_test.go (about) 1 // Copyright 2013 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 packet 6 7 import ( 8 "bytes" 9 "encoding/hex" 10 "testing" 11 "time" 12 ) 13 14 var pubKeyV3Test = struct { 15 hexFingerprint string 16 creationTime time.Time 17 pubKeyAlgo PublicKeyAlgorithm 18 keyId uint64 19 keyIdString string 20 keyIdShort string 21 }{ 22 "103BECF5BD1E837C89D19E98487767F7", 23 time.Unix(779753634, 0), 24 PubKeyAlgoRSA, 25 0xDE0F188A5DA5E3C9, 26 "DE0F188A5DA5E3C9", 27 "5DA5E3C9"} 28 29 func TestPublicKeyV3Read(t *testing.T) { 30 i, test := 0, pubKeyV3Test 31 packet, err := Read(v3KeyReader(t)) 32 if err != nil { 33 t.Fatalf("#%d: Read error: %s", i, err) 34 } 35 pk, ok := packet.(*PublicKeyV3) 36 if !ok { 37 t.Fatalf("#%d: failed to parse, got: %#v", i, packet) 38 } 39 if pk.PubKeyAlgo != test.pubKeyAlgo { 40 t.Errorf("#%d: bad public key algorithm got:%x want:%x", i, pk.PubKeyAlgo, test.pubKeyAlgo) 41 } 42 if !pk.CreationTime.Equal(test.creationTime) { 43 t.Errorf("#%d: bad creation time got:%v want:%v", i, pk.CreationTime, test.creationTime) 44 } 45 expectedFingerprint, _ := hex.DecodeString(test.hexFingerprint) 46 if !bytes.Equal(expectedFingerprint, pk.Fingerprint[:]) { 47 t.Errorf("#%d: bad fingerprint got:%x want:%x", i, pk.Fingerprint[:], expectedFingerprint) 48 } 49 if pk.KeyId != test.keyId { 50 t.Errorf("#%d: bad keyid got:%x want:%x", i, pk.KeyId, test.keyId) 51 } 52 if g, e := pk.KeyIdString(), test.keyIdString; g != e { 53 t.Errorf("#%d: bad KeyIdString got:%q want:%q", i, g, e) 54 } 55 if g, e := pk.KeyIdShortString(), test.keyIdShort; g != e { 56 t.Errorf("#%d: bad KeyIdShortString got:%q want:%q", i, g, e) 57 } 58 } 59 60 func TestPublicKeyV3Serialize(t *testing.T) { 61 //for i, test := range pubKeyV3Tests { 62 i := 0 63 packet, err := Read(v3KeyReader(t)) 64 if err != nil { 65 t.Fatalf("#%d: Read error: %s", i, err) 66 } 67 pk, ok := packet.(*PublicKeyV3) 68 if !ok { 69 t.Fatalf("#%d: failed to parse, got: %#v", i, packet) 70 } 71 var serializeBuf bytes.Buffer 72 if err = pk.Serialize(&serializeBuf); err != nil { 73 t.Fatalf("#%d: failed to serialize: %s", i, err) 74 } 75 76 if packet, err = Read(bytes.NewBuffer(serializeBuf.Bytes())); err != nil { 77 t.Fatalf("#%d: Read error (from serialized data): %s", i, err) 78 } 79 if pk, ok = packet.(*PublicKeyV3); !ok { 80 t.Fatalf("#%d: failed to parse serialized data, got: %#v", i, packet) 81 } 82 }