github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/coder/test/alg_test.go (about)

     1  package test
     2  
     3  import (
     4  	"crypto/dsa"
     5  	"github.com/isyscore/isc-gobase/coder"
     6  	"github.com/isyscore/isc-gobase/file"
     7  	"testing"
     8  )
     9  
    10  func TestMd5(t *testing.T) {
    11  	str := "abcdefg"
    12  	s1 := coder.MD5String(str)
    13  	t.Logf("%s md5 is %s", str, s1)
    14  
    15  	f := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/go.mod"
    16  	s2, err := coder.MD5File(f)
    17  	t.Logf("%s md5 is %s (%v)", f, s2, err)
    18  }
    19  
    20  func TestSha1(t *testing.T) {
    21  	str := "abcdefg"
    22  	s1 := coder.Sha1String(str)
    23  	t.Logf("%s sha1 is %s", str, s1)
    24  
    25  	f := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/go.mod"
    26  	s2, err := coder.Sha1File(f)
    27  	t.Logf("%s sha1 is %s (%v)", f, s2, err)
    28  }
    29  
    30  func TestHMac(t *testing.T) {
    31  	key := "isyscore"
    32  	str := "abcdefg"
    33  	s1 := coder.HMacMD5String(str, key)
    34  	t.Logf("%s hmac is %s", str, s1)
    35  }
    36  
    37  func TestRC4(t *testing.T) {
    38  	key := "isyscore"
    39  	str := "abcdefg"
    40  	s1 := coder.RC4Encrypt(str, key)
    41  	t.Logf("%s rc4 is %s", str, s1)
    42  
    43  	s2 := coder.RC4Decrypt(s1, key)
    44  	t.Logf("%s rc4 is %s", s1, s2)
    45  }
    46  
    47  func TestDES(t *testing.T) {
    48  	// CBC
    49  	key := "isyscore"
    50  	iv := "12345678"
    51  	str := "abcdefg"
    52  	s1 := coder.DESEncryptCBC(str, key, iv)
    53  	t.Logf("%s des is %s", str, s1)
    54  	s2 := coder.DESDecryptCBC(s1, key, iv)
    55  	t.Logf("%s des is %s", s1, s2)
    56  
    57  	// ECB
    58  	ss1 := coder.DESEncryptECB(str, key)
    59  	t.Logf("%s des is %s", str, ss1)
    60  	ss2 := coder.DESDecryptECB(ss1, key)
    61  	t.Logf("%s des is %s", ss1, ss2)
    62  }
    63  
    64  func TestRSA(t *testing.T) {
    65  	privKeyPath := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/test/rsa/private.pem"
    66  	pubKeyPath := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/test/rsa/public.pem"
    67  	if !file.FileExists(privKeyPath) {
    68  		err := coder.RSAGenerateKeyPair(coder.RSA_KEY_SIZE_1024, privKeyPath, pubKeyPath)
    69  		if err != nil {
    70  			t.Logf("generate key pair error: %v", err)
    71  			return
    72  		}
    73  	}
    74  
    75  	str := "abcdefg"
    76  	s1, err := coder.RSAEncrypt(str, pubKeyPath)
    77  	if err != nil {
    78  		t.Logf("encrypt error: %v", err)
    79  		return
    80  	}
    81  	t.Logf("%s rsa is %s", str, s1)
    82  
    83  	s2, err := coder.RSADecrypt(s1, privKeyPath)
    84  	t.Logf("%s rsa is %s (%v)", s1, s2, err)
    85  }
    86  
    87  func TestDSA(t *testing.T) {
    88  	privKeyPath := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/test/dsa/private.pem"
    89  	pubKeyPath := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/test/dsa/public.pem"
    90  	if !file.FileExists(privKeyPath) {
    91  		err := coder.DSAGenerateKeyPair(dsa.L1024N160, privKeyPath, pubKeyPath)
    92  		if err != nil {
    93  			t.Logf("generate key pair error: %v", err)
    94  			return
    95  		}
    96  	}
    97  
    98  	str := "abcdefg"
    99  	r, s, err := coder.DSASign(str, privKeyPath)
   100  	if err != nil {
   101  		t.Logf("sign error: %v", err)
   102  		return
   103  	}
   104  	verify, err := coder.DSAVerify(str, pubKeyPath, r, s)
   105  	if err != nil {
   106  		t.Logf("verify error: %v", err)
   107  		return
   108  	}
   109  	t.Logf("%s dsa is %v", str, verify)
   110  }
   111  
   112  func TestAes(t *testing.T) {
   113  	// encrypt
   114  	content := "abcdefg"
   115  	// ISC-PKI-BRIDGE~1
   116  
   117  	// key的长度必须是 16,24,32
   118  	key := "isyscore12345678"
   119  	iv := "0102030405060708"
   120  	s1 := coder.AesEncrypt(content, key, iv)
   121  	t.Logf("%s aes is %s", content, s1)
   122  
   123  	// decrypt
   124  	s2 := coder.AesDecrypt(s1, key, iv)
   125  	t.Logf("%s aes is %s", s1, s2)
   126  }
   127  
   128  func TestAesJava(t *testing.T) {
   129  	content := "abcdefg"
   130  	key := "isyscore12345678"
   131  	s1 := coder.AesEncryptECB(content, key)
   132  	t.Logf("%s aes is %s", content, s1)
   133  	s2 := coder.AesDecryptECB(s1, key)
   134  	t.Logf("%s aes is %s", s1, s2)
   135  }
   136  
   137  func TestAesCBC(t *testing.T) {
   138  	content := "abcdefg"
   139  	key := "isyscore12345678"
   140  	s1 := coder.AesEncryptCBC(content, key)
   141  	t.Logf("%s aes is %s", content, s1)
   142  	s2 := coder.AesDecryptCBC(s1, key)
   143  	t.Logf("%s aes is %s", s1, s2)
   144  }
   145  
   146  func Test2333(t *testing.T) {
   147  	content := "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"
   148  	key := "ISC-PKI-BRIDGE~1"
   149  	s1 := coder.AesDecryptECB(content, key)
   150  	t.Logf(s1)
   151  }