OLD | NEW |
(Empty) | |
| 1 // Copyright 2011 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 "crypto" |
| 10 "encoding/hex" |
| 11 "testing" |
| 12 ) |
| 13 |
| 14 func TestSignatureRead(t *testing.T) { |
| 15 packet, err := Read(readerFromHex(signatureDataHex)) |
| 16 if err != nil { |
| 17 t.Error(err) |
| 18 return |
| 19 } |
| 20 sig, ok := packet.(*Signature) |
| 21 if !ok || sig.SigType != SigTypeBinary || sig.PubKeyAlgo != PubKeyAlgoRS
A || sig.Hash != crypto.SHA1 { |
| 22 t.Errorf("failed to parse, got: %#v", packet) |
| 23 } |
| 24 } |
| 25 |
| 26 func TestSignatureReserialize(t *testing.T) { |
| 27 packet, _ := Read(readerFromHex(signatureDataHex)) |
| 28 sig := packet.(*Signature) |
| 29 out := new(bytes.Buffer) |
| 30 err := sig.Serialize(out) |
| 31 if err != nil { |
| 32 t.Errorf("error reserializing: %s", err) |
| 33 return |
| 34 } |
| 35 |
| 36 expected, _ := hex.DecodeString(signatureDataHex) |
| 37 if !bytes.Equal(expected, out.Bytes()) { |
| 38 t.Errorf("output doesn't match input (got vs expected):\n%s\n%s"
, hex.Dump(out.Bytes()), hex.Dump(expected)) |
| 39 } |
| 40 } |
| 41 |
| 42 const signatureDataHex = "c2c05c04000102000605024cb45112000a0910ab105c91af38fb15
8f8d07ff5596ea368c5efe015bed6e78348c0f033c931d5f2ce5db54ce7f2a7e4b4ad64db758d65a
7a71773edeab7ba2a9e0908e6a94a1175edd86c1d843279f045b021a6971a72702fcbd650efc393c
5474d5b59a15f96d2eaad4c4c426797e0dcca2803ef41c6ff234d403eec38f31d610c344c06f2401
c262f0993b2e66cad8a81ebc4322c723e0d4ba09fe917e8777658307ad8329adacba821420741009
dfe87f007759f0982275d028a392c6ed983a0d846f890b36148c7358bdb8a516007fac760261ecd0
6076813831a36d0459075d1befa245ae7f7fb103d92ca759e9498fe60ef8078a39a3beda510deea2
51ea9f0a7f0df6ef42060f20780360686f3e400e" |
OLD | NEW |