public void TestSHA256KnownValue() { StrTest caseval; caseval.input = "skycoin"; caseval.output = "5a42c0643bdb465d90bf673b99c14f5fa02db71513249d904573d2b8b63d353d"; StrTest caseval1; caseval1.input = "hello world"; caseval1.output = "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"; StrTest caseval2; caseval2.input = "hello world asd awd awd awdapodawpokawpod "; caseval2.output = "99d71f95cafe05ea2dddebc35b6083bd5af0e44850c9dc5139b4476c99950be4"; StrTest[] val = { caseval, caseval1, caseval2 }; for (int i = 0; i < val.Length; i++) { var io = val[i]; var b = new GoSlice(); var h = new cipher_SHA256(); var input = new _GoString_(); var output = new _GoString_(); input.p = io.input; b.convertString(input); var err = SKY_cipher_SumSHA256(b, h); Assert.AreEqual(err, SKY_OK); err = SKY_cipher_SHA256_Hex(h, output); Assert.AreEqual(err, SKY_OK); Assert.AreEqual(output.p == io.output, true); } }
public void TestScryptChacha20poly1305Encrypt() { for (int i = 1; i < 20; i++) { var name = "N=1<<" + i.ToString() + "(" + (1 << i).ToString() + ")" + ", R=8, p=1, keyLen=32"; var crypto = new encrypt__ScryptChacha20poly1305(); crypto.N = Convert.ToInt64(1 << i); crypto.R = 8; crypto.P = 1; crypto.KeyLen = 32; var encData = new GoSlice(); var plain = new GoSlice(); var passwd = new GoSlice(); var plaintext = new _GoString_(); var passwdText = new _GoString_(); plaintext.p = "plaintext"; plain.convertString(plaintext); passwdText.p = "password"; passwd.convertString(passwdText); var err = SKY_encrypt_ScryptChacha20poly1305_Encrypt(crypto, plain, passwd, encData); Assert.AreEqual(err, SKY_OK, name); Assert.AreEqual(encData.len > 2, true); var str = new _GoString_(); encData.getString(str); Console.WriteLine(name); if (str.n <= 188) { var meta = utils.base64Decode(str.p); var n = new_Gointp(); var r = new_Gointp(); var p = new_Gointp(); var keyLen = new_Gointp(); meta = cutString(meta, "{", "}"); parseJsonMetaData(meta, n, r, p, keyLen); Assert.AreEqual(1 << i, Gointp_value(n), name); Assert.AreEqual(8, Gointp_value(r), name); Assert.AreEqual(1, Gointp_value(p), name); Assert.AreEqual(32, Gointp_value(keyLen), name); } } }
public void TestGenerateDeterministicKeyPairsUsesAllBytes() { // Tests that if a seed >128 bits is used, the generator does not ignore bits >128 var seed = new GoSlice(); var seedText = "property diet little foster provide disagree witness mountain alley weekend kitten general"; var seedStr = new _GoString_(); seedStr.p = seedText; seed.convertString(seedStr); var seckeys = new GoSlice(); var err = SKY_cipher_GenerateDeterministicKeyPairs(seed, 3, seckeys); Assert.AreEqual(err, SKY_OK); var seckeys2 = new GoSlice(); seed.len = 16; err = SKY_cipher_GenerateDeterministicKeyPairs(seed, 3, seckeys2); Assert.AreEqual(err, SKY_OK); Assert.AreEqual(seckeys.isEqual(seckeys2), 0); }