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  }