Browse Source

move to enum with tuple. add missing crc32 to enum.

Marcin Krzyżanowski 11 years ago
parent
commit
37d707c9e7

+ 13 - 9
CryptoSwift/Hash.swift

@@ -9,23 +9,27 @@
 import Foundation
 
 public enum Hash {
-    case md5
-    case sha1, sha224, sha256, sha384, sha512
+    case md5(NSData)
+    case sha1(NSData)
+    case sha224(NSData), sha256(NSData), sha384(NSData), sha512(NSData)
+    case crc32(NSData)
     
-    public func calculate(data: NSData) -> NSData! {
+    public func calculate() -> NSData! {
         switch self {
-        case md5:
+        case md5(let data):
             return MD5(data).calculate()
-        case sha1:
+        case sha1(let data):
             return SHA1(data).calculate()
-        case sha224:
+        case sha224(let data):
             return SHA2(data).calculate32(.sha224)
-        case sha256:
+        case sha256(let data):
             return SHA2(data).calculate32(.sha256)
-        case sha384:
+        case sha384(let data):
             return SHA2(data).calculate64(.sha384)
-        case sha512:
+        case sha512(let data):
             return SHA2(data).calculate64(.sha512)
+        case crc32(let data):
+            return CRC().crc32(data);
         default:
             return nil
         }

+ 7 - 7
CryptoSwift/NSDataExtension.swift

@@ -37,31 +37,31 @@ extension NSData {
     }
     
     public func md5() -> NSData {
-        return Hash.md5.calculate(self)
+        return Hash.md5(self).calculate()
     }
 
     public func sha1() -> NSData {
-        return Hash.sha1.calculate(self)
+        return Hash.sha1(self).calculate()
     }
 
     public func sha224() -> NSData {
-        return Hash.sha224.calculate(self)
+        return Hash.sha224(self).calculate()
     }
 
     public func sha256() -> NSData {
-        return SHA2(self).calculate32(.sha256)
+        return Hash.sha256(self).calculate()
     }
 
     public func sha384() -> NSData {
-        return SHA2(self).calculate64(.sha384)
+        return Hash.sha384(self).calculate()
     }
 
     public func sha512() -> NSData {
-        return SHA2(self).calculate64(.sha512)
+        return Hash.sha512(self).calculate()
     }
 
     public func crc32() -> NSData {
-        return CRC().crc32(self);
+        return Hash.crc32(self).calculate()
     }
 
     public func encrypt(cipher: Cipher) -> NSData? {

+ 0 - 31
CryptoSwift/Playground/MyPlayground.playground/section-1.swift

@@ -2,35 +2,4 @@
 
 import Foundation
 
-struct CTX {
-    var q = 1
-}
 
-// WONT update q value of passed struct instance, but copy of it
-func foo1(var x:CTX) {
-    x.q = 3
-}
-
-// WILL update passed struct instance
-func foo2(inout x:CTX) {
-    x.q = 2
-}
-
-var x = CTX()
-
-foo1(x)
-println(x.q)
-
-foo2(&x)
-println(x.q)
-
-
-
-struct FixedLengthRange {
-    var firstValue: Int
-    let length: Int
-}
-var rangeOfThreeItems = FixedLengthRange(firstValue: 0, length: 3)
-// the range represents integer values 0, 1, and 2
-rangeOfThreeItems.firstValue = 6
-// the range now represents integer values 6, 7, and 8

+ 2 - 2
CryptoSwift/Playground/MyPlayground.playground/timeline.xctimeline

@@ -3,10 +3,10 @@
    version = "3.0">
    <TimelineItems>
       <LoggerValueHistoryTimelineItem
-         documentLocation = "file:///Users/marcinkrzyzanowski/Devel/CryptoSwift/CryptoSwift/Playground/MyPlayground.playground#CharacterRangeLen=0&amp;CharacterRangeLoc=72&amp;EndingLineNumber=3&amp;StartingLineNumber=3&amp;Timestamp=430787997.74212">
+         documentLocation = "file:///Users/marcinkrzyzanowski/Devel/CryptoSwift/CryptoSwift/Playground/MyPlayground.playground#CharacterRangeLen=0&amp;CharacterRangeLoc=71&amp;EndingLineNumber=3&amp;StartingLineNumber=3&amp;Timestamp=431184872.224454">
       </LoggerValueHistoryTimelineItem>
       <LoggerValueHistoryTimelineItem
-         documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=72&amp;EndingColumnNumber=7&amp;EndingLineNumber=3&amp;StartingColumnNumber=5&amp;StartingLineNumber=3&amp;Timestamp=430787997.742359">
+         documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=71&amp;EndingColumnNumber=7&amp;EndingLineNumber=3&amp;StartingColumnNumber=5&amp;StartingLineNumber=3&amp;Timestamp=431184872.224689">
       </LoggerValueHistoryTimelineItem>
    </TimelineItems>
 </Timeline>

+ 1 - 1
README.md

@@ -36,7 +36,7 @@ Hash enum usage
     
     /* Hash enum usage */
     var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
-    if let data = CryptoSwift.Hash.md5.calculate(data) {
+    if let data = CryptoSwift.Hash.md5(data).calculate() {
         println(data.hexString)
     }