Skip to content

Commit 1f6ff18

Browse files
committed
Redesign CatCrypto
Added raw, hex and base64 value output
1 parent ad977cd commit 1f6ff18

16 files changed

+158
-389
lines changed

CatCrypto-iOSTests/AESTests.swift

Lines changed: 0 additions & 24 deletions
This file was deleted.

CatCrypto-iOSTests/ArgonTests.swift

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,26 @@ class ArgonTests: XCTestCase {
2020

2121
func testNormalHashing() {
2222
let password = "Hi CatCrypto!"
23-
argon2Crypto.context = CatArgon2Context()
24-
XCTAssertNotNil(argon2Crypto.hash(password: password).raw)
23+
let result = argon2Crypto.hash(password: password)
24+
XCTAssertNotNil(result.raw)
25+
print(result.stringValue())
2526
}
2627

2728
func testEmptyHashing() {
2829
let password = ""
29-
argon2Crypto.context = CatArgon2Context()
3030
XCTAssertNotNil(argon2Crypto.hash(password: password).raw)
3131
}
3232

3333
func testNormalVerification() {
34-
let hash = "$argon2i$v=19$m=4096,t=3,p=1$c29tZXNhbHQ$fBDUF2J/v69XKO" +
35-
"d9wyDQp1l5Vb97caIrGIvJ7HR2Kk8"
34+
let hash = "$argon2i$v=19$m=4096,t=3,p=1$c29tZXNhbHQ$fBDUF2J/v69XKOd9wyDQp1l5Vb97caIrGIvJ7HR2Kk8"
3635
let password = "Hi CatCrypto!"
3736
let wrongPassword = "CatCrypto"
38-
argon2Crypto.context = CatArgon2Context()
3937
XCTAssertTrue(argon2Crypto.verify(hash: hash, password: password).boolValue())
4038
XCTAssertFalse(argon2Crypto.verify(hash: hash, password: wrongPassword).boolValue())
4139
}
4240

4341
func testIterations() {
4442
let password = "Hi CatCrypto!"
45-
argon2Crypto.context = CatArgon2Context()
4643
argon2Crypto.context.iterations = 0
4744
XCTAssertNotNil(argon2Crypto.hash(password: password).raw)
4845
argon2Crypto.context.iterations = 2 << 33
@@ -51,7 +48,6 @@ class ArgonTests: XCTestCase {
5148

5249
func testMemery() {
5350
let password = "Hi CatCrypto!"
54-
argon2Crypto.context = CatArgon2Context()
5551
argon2Crypto.context.memory = 0
5652
XCTAssertNotNil(argon2Crypto.hash(password: password).raw)
5753
argon2Crypto.context.memory = 2 << 33
@@ -60,25 +56,18 @@ class ArgonTests: XCTestCase {
6056

6157
func testParallelism() {
6258
let password = "Hi CatCrypto!"
63-
argon2Crypto.context = CatArgon2Context()
6459
argon2Crypto.context.parallelism = 0
6560
XCTAssertNotNil(argon2Crypto.hash(password: password).raw)
6661
argon2Crypto.context.parallelism = 2 << 32
6762
XCTAssertNotNil(argon2Crypto.hash(password: password).raw)
6863
}
6964

7065
func testMode() {
71-
let argon2dHash = "$argon2d$v=19$m=4096,t=3,p=1$MzA0RkU2NkUtMDQ3Mi00N" +
72-
"kU0LTkwQzMtQUU0NzYyOURDMjVB$olTMaUSUINprvqhNoOPCR9ScpnAb4tlGYRYs2r8Z" +
73-
"k2E"
74-
let argon2iHash = "$argon2i$v=19$m=4096,t=3,p=1$MzA0RkU2NkUtMDQ3Mi00N" +
75-
"kU0LTkwQzMtQUU0NzYyOURDMjVB$xTosSgQwcRnXH2F8JtH/55gS2bM9aOFlc3LGZyzp" +
76-
"0lk"
77-
let argon2idHash = "$argon2id$v=19$m=4096,t=3,p=1$MzA0RkU2NkUtMDQ3Mi0" +
78-
"0NkU0LTkwQzMtQUU0NzYyOURDMjVB$ZcJqwaBXemTn3+Uxenc0fda9ISSArJANUJhpzK" +
79-
"iOxdY"
66+
let argon2dHash = "$argon2d$v=19$m=4096,t=3,p=1$MzA0RkU2NkUtMDQ3Mi00NkU0LTkwQzMtQUU0NzYyOURDMjVB$olTMaUSUINprvqhNoOPCR9ScpnAb4tlGYRYs2r8Zk2E"
67+
let argon2iHash = "$argon2i$v=19$m=4096,t=3,p=1$MzA0RkU2NkUtMDQ3Mi00NkU0LTkwQzMtQUU0NzYyOURDMjVB$xTosSgQwcRnXH2F8JtH/55gS2bM9aOFlc3LGZyzp0lk"
68+
let argon2idHash = "$argon2id$v=19$m=4096,t=3,p=1$MzA0RkU2NkUtMDQ3Mi00NkU0LTkwQzMtQUU0NzYyOURDMjVB$ZcJqwaBXemTn3+Uxenc0fda9ISSArJANUJhpzKiO" +
69+
"xdY"
8070
let password = "Hi CatCrypto!"
81-
argon2Crypto.context = CatArgon2Context()
8271
argon2Crypto.context.salt = UUID().uuidString
8372
argon2Crypto.context.mode = .argon2d
8473
XCTAssertNotNil(argon2Crypto.hash(password: password).raw)
@@ -93,7 +82,6 @@ class ArgonTests: XCTestCase {
9382

9483
func testSalt() {
9584
let password = "Hi CatCrypto!"
96-
argon2Crypto.context = CatArgon2Context()
9785
argon2Crypto.context.salt = ""
9886
XCTAssertNil(argon2Crypto.hash(password: password).raw)
9987
argon2Crypto.context.salt = UUID().uuidString
@@ -102,7 +90,6 @@ class ArgonTests: XCTestCase {
10290

10391
func testHashLength() {
10492
let password = "Hi CatCrypto!"
105-
argon2Crypto.context = CatArgon2Context()
10693
argon2Crypto.context.hashLength = 0
10794
XCTAssertNotNil(argon2Crypto.hash(password: password).raw)
10895
argon2Crypto.context.hashLength = -1

CatCrypto-iOSTests/MessageDigestCryptoTests.swift

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@ class MessageDigestCryptoTests: XCTestCase {
3636
let md2Hash = "6ea4345a17562bf4703152aec8672d6d"
3737
let md4Hash = "c2bb6aee7fafc5ee23b05baaafba8b9d"
3838
let md5Hash = "3677650e5a4c1a8497e87331dd67c112"
39-
let md6Hash = "377f5f2f9372341b15e9a2e54c4034b7f8161d4a9907c3c8bdb372" +
40-
"08369cc2446ef7382928e432a9bd58177a54ef7bd53f27f35d80006167b17248c5fa" +
41-
"3df1b3"
39+
let md6Hash = "377f5f2f9372341b15e9a2e54c4034b7f8161d4a9907c3c8bdb37208369cc2446ef7382928e432a9bd58177a54ef7bd53f27f35d80006167b17248c5fa3d" +
40+
"f1b3"
4241
XCTAssertEqual(md2Crypto.hash(password: password).hexStringValue(), md2Hash)
4342
XCTAssertEqual(md4Crypto.hash(password: password).hexStringValue(), md4Hash)
4443
XCTAssertEqual(md5Crypto.hash(password: password).hexStringValue(), md5Hash)
@@ -50,9 +49,8 @@ class MessageDigestCryptoTests: XCTestCase {
5049
let md2Hash = "8350e5a3e24c153df2275c9f80692773"
5150
let md4Hash = "31d6cfe0d16ae931b73c59d7e0c089c0"
5251
let md5Hash = "d41d8cd98f00b204e9800998ecf8427e"
53-
let md6Hash = "6b7f33821a2c060ecdd81aefddea2fd3c4720270e18654f4cb08ec" +
54-
"e49ccb469f8beeee7c831206bd577f9f2630d9177979203a9489e47e04df4e6deaa0" +
55-
"f8e0c0"
52+
let md6Hash = "6b7f33821a2c060ecdd81aefddea2fd3c4720270e18654f4cb08ece49ccb469f8beeee7c831206bd577f9f2630d9177979203a9489e47e04df4e6deaa0f8" +
53+
"e0c0"
5654
XCTAssertEqual(md2Crypto.hash(password: password).hexStringValue(), md2Hash)
5755
XCTAssertEqual(md4Crypto.hash(password: password).hexStringValue(), md4Hash)
5856
XCTAssertEqual(md5Crypto.hash(password: password).hexStringValue(), md5Hash)
@@ -61,15 +59,11 @@ class MessageDigestCryptoTests: XCTestCase {
6159

6260
func testMD6HashLength() {
6361
let password = "Hi CatCrypto!"
64-
let bit224Hash = "1e9fff946e2d35d551bd3927a71233cecc769e263435085dfda" +
65-
"d79bc"
66-
let bit256Hash = "5402a99f803be2f12d7e7675affcea14ac26af0a84c565ae631" +
67-
"de93add884d43"
68-
let bit384Hash = "8c0202be3d8190dc1ad232dd340ded9b76446365c4834e68ab8" +
69-
"1e710f751631e67becb848e264b55bd244014d3ed5b04"
70-
let bit512Hash = "377f5f2f9372341b15e9a2e54c4034b7f8161d4a9907c3c8bdb" +
71-
"37208369cc2446ef7382928e432a9bd58177a54ef7bd53f27f35d80006167b17248c" +
72-
"5fa3df1b3"
62+
let bit224Hash = "1e9fff946e2d35d551bd3927a71233cecc769e263435085dfdad79bc"
63+
let bit256Hash = "5402a99f803be2f12d7e7675affcea14ac26af0a84c565ae631de93add884d43"
64+
let bit384Hash = "8c0202be3d8190dc1ad232dd340ded9b76446365c4834e68ab81e710f751631e67becb848e264b55bd244014d3ed5b04"
65+
let bit512Hash = "377f5f2f9372341b15e9a2e54c4034b7f8161d4a9907c3c8bdb37208369cc2446ef7382928e432a9bd58177a54ef7bd53f27f35d80006167b17248c5f" +
66+
"a3df1b3"
7367
md6Crypto.context.hashLength = .bit224
7468
XCTAssertEqual(md6Crypto.hash(password: password).hexStringValue(), bit224Hash)
7569
md6Crypto.context.hashLength = .bit256
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//
2+
// ResultValueTests.swift
3+
// CatCrypto-iOSTests
4+
//
5+
// Created by vlang on 2018/9/27.
6+
// Copyright © 2018 imkcat. All rights reserved.
7+
//
8+
9+
import XCTest
10+
@testable import CatCrypto
11+
12+
class ResultValueTests: XCTestCase {
13+
14+
var argon2Crypto: CatArgon2Crypto!
15+
var md6Crypto: CatMD6Crypto!
16+
let password = "CatCrypto"
17+
18+
override func setUp() {
19+
argon2Crypto = CatArgon2Crypto()
20+
md6Crypto = CatMD6Crypto()
21+
}
22+
23+
override func tearDown() {
24+
}
25+
26+
func testStringValue() {
27+
XCTAssertFalse(argon2Crypto.hash(password: password).stringValue() == "")
28+
}
29+
30+
func testHexValue() {
31+
XCTAssertFalse(md6Crypto.hash(password: password).hexStringValue() == "")
32+
}
33+
34+
func testBase64Value() {
35+
XCTAssertFalse(md6Crypto.hash(password: password).base64StringValue() == "")
36+
}
37+
38+
}

CatCrypto-iOSTests/SHATests.swift

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,24 +41,19 @@ class SHATests: XCTestCase {
4141
func testEmptyHashing() {
4242
let password = ""
4343
let sha1Hash = "da39a3ee5e6b4b0d3255bfef95601890afd80709"
44-
let sha2Hash = "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a" +
45-
"921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af" +
46-
"927da3e"
44+
let sha2Hash = "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af92" +
45+
"7da3e"
4746
XCTAssertEqual(sha1Crypto.hash(password: password).hexStringValue(), sha1Hash)
4847
XCTAssertEqual(sha2Crypto.hash(password: password).hexStringValue(), sha2Hash)
4948
}
5049

5150
func testSHA2HashLength() {
5251
let password = "Hi CatCrypto!"
53-
let bit224Hash = "2cbea89f84eaeb8411db4b5ea0cb06162e6286071959377171a" +
54-
"86d88"
55-
let bit256Hash = "7221d760b4be1adb057705650a8bc8d5858dfbf1d4740fc511a" +
56-
"7f216d02c60df"
57-
let bit384Hash = "faab5de04ebe052cdb76e2485d7bee7866ce48adc9dc0091828" +
58-
"bb0c25e5491296f9c37839fdd82cd37f062c996b74c80"
59-
let bit512Hash = "c9fd74f142910d835c22dff40cc943de3e3a8c364c752a488e0" +
60-
"e66e0e17f7fea9f5c0e4b8f5f1e64d8e8ec96e97ef4a011704fec3c742d105299ce4" +
61-
"ec1c30976"
52+
let bit224Hash = "2cbea89f84eaeb8411db4b5ea0cb06162e6286071959377171a86d88"
53+
let bit256Hash = "7221d760b4be1adb057705650a8bc8d5858dfbf1d4740fc511a7f216d02c60df"
54+
let bit384Hash = "faab5de04ebe052cdb76e2485d7bee7866ce48adc9dc0091828bb0c25e5491296f9c37839fdd82cd37f062c996b74c80"
55+
let bit512Hash = "c9fd74f142910d835c22dff40cc943de3e3a8c364c752a488e0e66e0e17f7fea9f5c0e4b8f5f1e64d8e8ec96e97ef4a011704fec3c742d105299ce4ec" +
56+
"1c30976"
6257
sha2Crypto.context.hashLength = .bit224
6358
XCTAssertEqual(sha2Crypto.hash(password: password).hexStringValue(), bit224Hash)
6459
sha2Crypto.context.hashLength = .bit256
@@ -71,15 +66,11 @@ class SHATests: XCTestCase {
7166

7267
func testSHA3HashLength() {
7368
let password = "Hi CatCrypto!"
74-
let bit224Hash = "13ef53d3f57e6b69244cfd6faf67d0dfad70927725504870a56" +
75-
"d92a5"
76-
let bit256Hash = "a4c90d63d19c6c4cb661480c29fed4b5ef900e53358b0190c8a" +
77-
"ff54ccda733ba"
78-
let bit384Hash = "9ad86c44624d577511728bcb5ee3df644856d8c1f7374de93a9" +
79-
"5f2c232def165f5dfaf56217e774e426179b4a30a0cd8"
80-
let bit512Hash = "a6a3a62c6e3572473bcd91dc366828acdf51d29b19aa1eef92c" +
81-
"b12a41f195000eff6a127ca66f19aa78754abea079157397d4a85e0e1c3c60f3f894" +
82-
"80b0159c6"
69+
let bit224Hash = "13ef53d3f57e6b69244cfd6faf67d0dfad70927725504870a56d92a5"
70+
let bit256Hash = "a4c90d63d19c6c4cb661480c29fed4b5ef900e53358b0190c8aff54ccda733ba"
71+
let bit384Hash = "9ad86c44624d577511728bcb5ee3df644856d8c1f7374de93a95f2c232def165f5dfaf56217e774e426179b4a30a0cd8"
72+
let bit512Hash = "a6a3a62c6e3572473bcd91dc366828acdf51d29b19aa1eef92cb12a41f195000eff6a127ca66f19aa78754abea079157397d4a85e0e1c3c60f3f89480" +
73+
"b0159c6"
8374
sha3Crypto.context.hashLength = .bit224
8475
XCTAssertEqual(sha3Crypto.hash(password: password).hexStringValue(), bit224Hash)
8576
sha3Crypto.context.hashLength = .bit256

0 commit comments

Comments
 (0)