LEFT | RIGHT |
(no file at all) | |
| 1 // Copyright 2012 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 x509 |
| 6 |
| 7 import ( |
| 8 "encoding/pem" |
| 9 "testing" |
| 10 ) |
| 11 |
| 12 func TestDecrypt(t *testing.T) { |
| 13 for _, data := range testData { |
| 14 block, rest := pem.Decode(data.pemData) |
| 15 if len(rest) > 0 { |
| 16 t.Error(data.kind, "extra data") |
| 17 } |
| 18 der, err := DecryptPEMBlock(block, data.password) |
| 19 if err != nil { |
| 20 t.Error(data.kind, err) |
| 21 continue |
| 22 } |
| 23 if _, err := ParsePKCS1PrivateKey(der); err != nil { |
| 24 t.Error(data.kind, "Invalid private key") |
| 25 } |
| 26 } |
| 27 } |
| 28 |
| 29 var testData = []struct { |
| 30 kind string |
| 31 password []byte |
| 32 pemData []byte |
| 33 }{ |
| 34 { |
| 35 kind: "DES-CBC", |
| 36 password: []byte("asdf"), |
| 37 pemData: []byte(` |
| 38 -----BEGIN RSA PRIVATE KEY----- |
| 39 Proc-Type: 4,ENCRYPTED |
| 40 DEK-Info: DES-CBC,34F09A4FC8DE22B5 |
| 41 |
| 42 WXxy8kbZdiZvANtKvhmPBLV7eVFj2A5z6oAxvI9KGyhG0ZK0skfnt00C24vfU7m5 |
| 43 ICXeoqP67lzJ18xCzQfHjDaBNs53DSDT+Iz4e8QUep1xQ30+8QKX2NA2coee3nwc |
| 44 6oM1cuvhNUDemBH2i3dKgMVkfaga0zQiiOq6HJyGSncCMSruQ7F9iWEfRbFcxFCx |
| 45 qtHb1kirfGKEtgWTF+ynyco6+2gMXNu70L7nJcnxnV/RLFkHt7AUU1yrclxz7eZz |
| 46 XOH9VfTjb52q/I8Suozq9coVQwg4tXfIoYUdT//O+mB7zJb9HI9Ps77b9TxDE6Gm |
| 47 4C9brwZ3zg2vqXcwwV6QRZMtyll9rOpxkbw6NPlpfBqkc3xS51bbxivbO/Nve4KD |
| 48 r12ymjFNF4stXCfJnNqKoZ50BHmEEUDu5Wb0fpVn82XrGw7CYc4iug== |
| 49 -----END RSA PRIVATE KEY-----`), |
| 50 }, |
| 51 { |
| 52 kind: "DES-EDE3-CBC", |
| 53 password: []byte("asdf"), |
| 54 pemData: []byte(` |
| 55 -----BEGIN RSA PRIVATE KEY----- |
| 56 Proc-Type: 4,ENCRYPTED |
| 57 DEK-Info: DES-EDE3-CBC,C1F4A6A03682C2C7 |
| 58 |
| 59 0JqVdBEH6iqM7drTkj+e2W/bE3LqakaiWhb9WUVonFkhyu8ca/QzebY3b5gCvAZQ |
| 60 YwBvDcT/GHospKqPx+cxDHJNsUASDZws6bz8ZXWJGwZGExKzr0+Qx5fgXn44Ms3x |
| 61 8g1ENFuTXtxo+KoNK0zuAMAqp66Llcds3Fjl4XR18QaD0CrVNAfOdgATWZm5GJxk |
| 62 Fgx5f84nT+/ovvreG+xeOzWgvtKo0UUZVrhGOgfKLpa57adumcJ6SkUuBtEFpZFB |
| 63 ldw5w7WC7d13x2LsRkwo8ZrDKgIV+Y9GNvhuCCkTzNP0V3gNeJpd201HZHR+9n3w |
| 64 3z0VjR/MGqsfcy1ziEWMNOO53At3zlG6zP05aHMnMcZoVXadEK6L1gz++inSSDCq |
| 65 gI0UJP4e3JVB7AkgYymYAwiYALAkoEIuanxoc50njJk= |
| 66 -----END RSA PRIVATE KEY-----`), |
| 67 }, |
| 68 { |
| 69 kind: "AES-128-CBC", |
| 70 password: []byte("asdf"), |
| 71 pemData: []byte(` |
| 72 -----BEGIN RSA PRIVATE KEY----- |
| 73 Proc-Type: 4,ENCRYPTED |
| 74 DEK-Info: AES-128-CBC,D4492E793FC835CC038A728ED174F78A |
| 75 |
| 76 EyfQSzXSjv6BaNH+NHdXRlkHdimpF9izWlugVJAPApgXrq5YldPe2aGIOFXyJ+QE |
| 77 ZIG20DYqaPzJRjTEbPNZ6Es0S2JJ5yCpKxwJuDkgJZKtF39Q2i36JeGbSZQIuWJE |
| 78 GZbBpf1jDH/pr0iGonuAdl2PCCZUiy+8eLsD2tyviHUkFLOB+ykYoJ5t8ngZ/B6D |
| 79 33U43LLb7+9zD4y3Q9OVHqBFGyHcxCY9+9Qh4ZnFp7DTf6RY5TNEvE3s4g6aDpBs |
| 80 3NbvRVvYTgs8K9EPk4K+5R+P2kD8J8KvEIGxVa1vz8QoCJ/jr7Ka2rvNgPCex5/E |
| 81 080LzLHPCrXKdlr/f50yhNWq08ZxMWQFkui+FDHPDUaEELKAXV8/5PDxw80Rtybo |
| 82 AVYoCVIbZXZCuCO81op8UcOgEpTtyU5Lgh3Mw5scQL0= |
| 83 -----END RSA PRIVATE KEY-----`), |
| 84 }, |
| 85 { |
| 86 kind: "AES-192-CBC", |
| 87 password: []byte("asdf"), |
| 88 pemData: []byte(` |
| 89 -----BEGIN RSA PRIVATE KEY----- |
| 90 Proc-Type: 4,ENCRYPTED |
| 91 DEK-Info: AES-192-CBC,E2C9FB02BCA23ADE1829F8D8BC5F5369 |
| 92 |
| 93 cqVslvHqDDM6qwU6YjezCRifXmKsrgEev7ng6Qs7UmDJOpHDgJQZI9fwMFUhIyn5 |
| 94 FbCu1SHkLMW52Ld3CuEqMnzWMlhPrW8tFvUOrMWPYSisv7nNq88HobZEJcUNL2MM |
| 95 Y15XmHW6IJwPqhKyLHpWXyOCVEh4ODND2nV15PCoi18oTa475baxSk7+1qH7GuIs |
| 96 Rb7tshNTMqHbCpyo9Rn3UxeFIf9efdl8YLiMoIqc7J8E5e9VlbeQSdLMQOgDAQJG |
| 97 ReUtTw8exmKsY4gsSjhkg5uiw7/ZB1Ihto0qnfQJgjGc680qGkT1d6JfvOfeYAk6 |
| 98 xn5RqS/h8rYAYm64KnepfC9vIujo4NqpaREDmaLdX5MJPQ+SlytITQvgUsUq3q/t |
| 99 Ss85xjQEZH3hzwjQqdJvmA4hYP6SUjxYpBM+02xZ1Xw= |
| 100 -----END RSA PRIVATE KEY-----`), |
| 101 }, |
| 102 { |
| 103 kind: "AES-256-CBC", |
| 104 password: []byte("asdf"), |
| 105 pemData: []byte(` |
| 106 -----BEGIN RSA PRIVATE KEY----- |
| 107 Proc-Type: 4,ENCRYPTED |
| 108 DEK-Info: AES-256-CBC,8E7ED5CD731902CE938957A886A5FFBD |
| 109 |
| 110 4Mxr+KIzRVwoOP0wwq6caSkvW0iS+GE2h2Ov/u+n9ZTMwL83PRnmjfjzBgfRZLVf |
| 111 JFPXxUK26kMNpIdssNnqGOds+DhB+oSrsNKoxgxSl5OBoYv9eJTVYm7qOyAFIsjr |
| 112 DRKAcjYCmzfesr7PVTowwy0RtHmYwyXMGDlAzzZrEvaiySFFmMyKKvtoavwaFoc7 |
| 113 Pz3RZScwIuubzTGJ1x8EzdffYOsdCa9Mtgpp3L136+23dOd6L/qK2EG2fzrJSHs/ |
| 114 2XugkleBFSMKzEp9mxXKRfa++uidQvMZTFLDK9w5YjrRvMBo/l2BoZIsq0jAIE1N |
| 115 sv5Z/KwlX+3MDEpPQpUwGPlGGdLnjI3UZ+cjgqBcoMiNc6HfgbBgYJSU6aDSHuCk |
| 116 clCwByxWkBNgJ2GrkwNrF26v+bGJJJNR4SKouY1jQf0= |
| 117 -----END RSA PRIVATE KEY-----`), |
| 118 }, |
| 119 } |
LEFT | RIGHT |