github.com/wuhuizuo/gomplate@v3.5.0+incompatible/funcs/crypto_test.go (about) 1 package funcs 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestPBKDF2(t *testing.T) { 11 c := CryptoNS() 12 dk, err := cryptoNS.PBKDF2("password", []byte("IEEE"), "4096", 32) 13 assert.Equal(t, "f42c6fc52df0ebef9ebb4b90b38a5f902e83fe1b135a70e23aed762e9710a12e", dk) 14 assert.NoError(t, err) 15 16 dk, err = c.PBKDF2([]byte("password"), "IEEE", 4096, "64", "SHA-512") 17 assert.Equal(t, "c16f4cb6d03e23614399dee5e7f676fb1da0eb9471b6a74a6c5bc934c6ec7d2ab7028fbb1000b1beb97f17646045d8144792352f6676d13b20a4c03754903d7e", dk) 18 assert.NoError(t, err) 19 20 _, err = c.PBKDF2(nil, nil, nil, nil, "bogus") 21 assert.Error(t, err) 22 } 23 24 func TestWPAPSK(t *testing.T) { 25 dk, err := cryptoNS.WPAPSK("password", "MySSID") 26 assert.Equal(t, "3a98def84b11644a17ebcc9b17955d2360ce8b8a85b8a78413fc551d722a84e7", dk) 27 assert.NoError(t, err) 28 } 29 30 func TestSHA(t *testing.T) { 31 in := "abc" 32 sha1 := "a9993e364706816aba3e25717850c26c9cd0d89d" 33 sha224 := "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7" 34 sha256 := "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" 35 sha384 := "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7" 36 sha512 := "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f" 37 sha512_224 := "4634270f707b6a54daae7530460842e20e37ed265ceee9a43e8924aa" 38 sha512_256 := "53048e2681941ef99b2e29b76b4c7dabe4c2d0c634fc6d46e0e2f13107e7af23" 39 c := CryptoNS() 40 assert.Equal(t, sha1, c.SHA1(in)) 41 assert.Equal(t, sha224, c.SHA224(in)) 42 assert.Equal(t, sha256, c.SHA256(in)) 43 assert.Equal(t, sha384, c.SHA384(in)) 44 assert.Equal(t, sha512, c.SHA512(in)) 45 assert.Equal(t, sha512_224, c.SHA512_224(in)) 46 assert.Equal(t, sha512_256, c.SHA512_256(in)) 47 } 48 49 func TestBcrypt(t *testing.T) { 50 in := "foo" 51 c := CryptoNS() 52 actual, err := c.Bcrypt(in) 53 assert.NoError(t, err) 54 assert.True(t, strings.HasPrefix(actual, "$2a$10$")) 55 56 actual, err = c.Bcrypt(0, in) 57 assert.NoError(t, err) 58 assert.True(t, strings.HasPrefix(actual, "$2a$10$")) 59 60 actual, err = c.Bcrypt(4, in) 61 assert.NoError(t, err) 62 assert.True(t, strings.HasPrefix(actual, "$2a$04$")) 63 64 _, err = c.Bcrypt() 65 assert.Error(t, err) 66 }