HashTests.swift 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //
  2. // CryptoSwiftTests.swift
  3. // CryptoSwiftTests
  4. //
  5. // Created by Marcin Krzyzanowski on 06/07/14.
  6. // Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
  7. //
  8. import XCTest
  9. import CryptoSwift
  10. class CryptoSwiftTests: XCTestCase {
  11. override func setUp() {
  12. super.setUp()
  13. }
  14. override func tearDown() {
  15. super.tearDown()
  16. }
  17. func testMD5() {
  18. let data1:NSData = NSData(bytes: [0x31, 0x32, 0x33] as [Byte], length: 3) // "1", "2", "3"
  19. var hash:NSData = MD5(data1).calculate()
  20. XCTAssertEqual(hash.hexString, "202CB962AC59075B964B07152D234B70", "MD5 calculation failed");
  21. if let hash = "123".md5() {
  22. XCTAssertEqual(hash, "202CB962AC59075B964B07152D234B70", "MD5 calculation failed");
  23. }
  24. if let hash = "".md5() {
  25. XCTAssertEqual(hash, "D41D8CD98F00B204E9800998ECF8427E", "MD5 calculation failed")
  26. }
  27. if let hash = "a".md5() {
  28. XCTAssertEqual(hash, "0CC175B9C0F1B6A831C399E269772661", "MD5 calculation failed")
  29. }
  30. if let hash = "abc".md5() {
  31. XCTAssertEqual(hash, "900150983CD24FB0D6963F7D28E17F72", "MD5 calculation failed")
  32. }
  33. if let hash = "message digest".md5() {
  34. XCTAssertEqual(hash, "F96B697D7CB7938D525A2F31AAF161D0", "MD5 calculation failed")
  35. }
  36. if let hash = "abcdefghijklmnopqrstuvwxyz".md5() {
  37. XCTAssertEqual(hash, "C3FCD3D76192E4007DFB496CCA67E13B", "MD5 calculation failed")
  38. }
  39. if let hash = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".md5() {
  40. XCTAssertEqual(hash, "D174AB98D277D9F5A5611C2C9F419D9F", "MD5 calculation failed")
  41. }
  42. if let hash = "12345678901234567890123456789012345678901234567890123456789012345678901234567890".md5() {
  43. XCTAssertEqual(hash, "57EDF4A22BE3C955AC49DA2E2107B67A", "MD5 calculation failed")
  44. }
  45. }
  46. func testSHA1() {
  47. var data:NSData = NSData(bytes: [0x31, 0x32, 0x33] as [Byte], length: 3)
  48. var hash:NSData = data.sha1()
  49. XCTAssertEqual(hash.hexString, "40BD001563085FC35165329EA1FF5C5ECBDBBEEF", "SHA1 calculation failed");
  50. if let hash = "abc".sha1() {
  51. XCTAssertEqual(hash, "A9993E364706816ABA3E25717850C26C9CD0D89D", "SHA1 calculation failed")
  52. }
  53. if let hash = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq".sha1() {
  54. XCTAssertEqual(hash, "84983E441C3BD26EBAAE4AA1F95129E5E54670F1", "SHA1 calculation failed")
  55. }
  56. }
  57. //
  58. // func testSHA512() {
  59. // var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
  60. // var sha512:NSData = data.sha512()
  61. // XCTAssertNotNil(sha512, "SHA512 calculation failed")
  62. //
  63. // var sha512String:String = sha512.toHexString()
  64. // XCTAssertEqualObjects(sha512String, "3C9909AFEC25354D551DAE21590BB26E38D53F2173B8D3DC3EEE4C047E7AB1C1EB8B85103E3BE7BA613B31BB5C9C36214DC9F14A42FD7A2FDB84856BCA5C44C2", "SHA512 calculation failed");
  65. // }
  66. //
  67. // func testHashEnum() {
  68. // var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
  69. // let md5 = CryptoHash.md5.hash(data);
  70. // var md5String:String = md5.toHexString();
  71. // XCTAssertEqualObjects(md5String, "202CB962AC59075B964B07152D234B70", "MD5 calculation failed");
  72. // }
  73. }