github.com/Cloud-Foundations/Dominator@v0.3.4/lib/repowatch/getKey_test.go (about) 1 package repowatch 2 3 import ( 4 "bytes" 5 "encoding/base64" 6 "encoding/pem" 7 "testing" 8 ) 9 10 const testKeyPEM = `-----BEGIN RSA PRIVATE KEY----- 11 Key: Value 12 13 MIICXAIBAAKBgQDHcTjuu3Ue8t2LsqWzOgNuRksfRfABNGf1Dz7/hlVT89El1pxw 14 zRltkYm3r/xA1eYcfIWKqM6yzXYMunxqAqRt0qgUFUXjmbV0Fgdm9rFSQcZtgPW/ 15 YphIotfEJdEQSmNVC8Oba1fPKqpQ7a0Z5ZoQNnjVZXF3AU+WmHsJ/lZF0QIDAQAB 16 AoGAMpcVyfjjDKaua/E09vGQTTindZdX+fZBKHhlkouQuWrvcpmttS9Rc+mm9WE+ 17 q3OWm0M63KFVTSWw/CmRxZJGAuJTbUZrRgcCymUOYAz4eiO8+4I0cNZqlJtr3fXR 18 hfrb4+7B4f9M05OfLrBt09D6cxvBtDv3CRj0hvcpm6wsXcECQQD7X0QXy1FO4SRY 19 U3ekyC4SagriIHZtJV1DghMd6ryAit38bUPM+QI76KA8e6PDrzh/tqrB9Ocd3sCE 20 yCeQG78HAkEAyx01Gun+q0datTDGvLaFkVCR8KK6YLMOwp9220+Z0bOGaybG+BMd 21 P8bULayXaePheVVDETQLk6WQqT/GvuvGZwJAbqAsbXRTIi2/OwfwvZpDfGMiywWS 22 WNJ6yvzxwNbPgpqauz6y+gAUVZ0496VKGxKAAOS5HYbUN7cSbt1PXAJ5/QJBALVS 23 y7fNMSaiup2Kf8C0iKTjcoWKICx3bTPdu/OpKj6Er/k0Uuff2Hq4+24S59EGOKFi 24 tk7DUZprcatGXhzOyv0CQDoBVbA41SbmBgV0pXcuaJHuctzunA9clrvczS5JGwiI 25 EemNmQrsBDBHPzEpYhmDf9KdeKeoLSLOWnWdmKGf7Pc= 26 -----END RSA PRIVATE KEY----- 27 ` 28 29 func TestPackedKey(t *testing.T) { 30 block, _ := pem.Decode([]byte(testKeyPEM)) 31 keyMap := map[string]string{ 32 "KeyType": "RSA", 33 "PrivateKey": base64.StdEncoding.EncodeToString(block.Bytes), 34 } 35 for key, value := range block.Headers { 36 keyMap[key] = value 37 } 38 buffer := &bytes.Buffer{} 39 if err := writeKeyAsPEM(buffer, keyMap); err != nil { 40 t.Fatal(err) 41 } 42 if pemData := buffer.String(); pemData != testKeyPEM { 43 t.Fatalf("extracted PEM: %s != test PEM: %s", pemData, testKeyPEM) 44 } 45 } 46 47 func TestKeyWithSpaces(t *testing.T) { 48 block, _ := pem.Decode([]byte(testKeyPEM)) 49 packedKey := base64.StdEncoding.EncodeToString(block.Bytes) 50 var keyWithSpaces []byte 51 for index, ch := range packedKey { 52 keyWithSpaces = append(keyWithSpaces, byte(ch)) 53 if index%10 == 9 { 54 keyWithSpaces = append(keyWithSpaces, byte(' ')) 55 } 56 } 57 keyMap := map[string]string{ 58 "KeyType": "RSA", 59 "PrivateKey": string(keyWithSpaces), 60 } 61 t.Logf("base64: %s", keyMap["PrivateKey"]) 62 for key, value := range block.Headers { 63 keyMap[key] = value 64 } 65 buffer := &bytes.Buffer{} 66 if err := writeKeyAsPEM(buffer, keyMap); err != nil { 67 t.Fatal(err) 68 } 69 if pemData := buffer.String(); pemData != testKeyPEM { 70 t.Fatalf("extracted PEM: %s != test PEM: %s", pemData, testKeyPEM) 71 } 72 }