Browse Source

Make SHA2 class public (and minors)

Marcin Krzyżanowski 9 years ago
parent
commit
8091cfd7a2
1 changed files with 10 additions and 11 deletions
  1. 10 11
      Sources/CryptoSwift/SHA2.swift

+ 10 - 11
Sources/CryptoSwift/SHA2.swift

@@ -8,7 +8,7 @@
 //  TODO: generic for process32/64 (UInt32/UInt64)
 //
 
-final class SHA2: DigestType {
+public final class SHA2: DigestType {
     let variant: Variant
     var size: Int { return variant.rawValue }
     var blockSize: Int { return variant.blockSize }
@@ -29,14 +29,14 @@ final class SHA2: DigestType {
         }
     }
 
-    enum Variant: RawRepresentable {
+    public enum Variant: RawRepresentable {
         case sha224, sha256, sha384, sha512
 
-        var digestLength:Int {
+        public var digestLength:Int {
             return self.rawValue / 8
         }
 
-        var blockSize: Int {
+        public var blockSize: Int {
             switch self {
             case .sha224, .sha256:
                 return 64
@@ -45,8 +45,8 @@ final class SHA2: DigestType {
             }
         }
 
-        typealias RawValue = Int
-        var rawValue: RawValue {
+        public typealias RawValue = Int
+        public var rawValue: RawValue {
             switch self {
             case .sha224:
                 return 224
@@ -59,7 +59,7 @@ final class SHA2: DigestType {
             }
         }
         
-        init?(rawValue: RawValue) {
+        public init?(rawValue: RawValue) {
             switch (rawValue) {
             case 224:
                 self = .sha224
@@ -138,7 +138,7 @@ final class SHA2: DigestType {
         do {
             return try self.update(withBytes: bytes, isLast: true)
         } catch {
-            fatalError()
+            return []
         }
     }
 
@@ -300,13 +300,12 @@ extension SHA2: Updatable {
             }
             case .sha384, .sha512:
                 result.reserveCapacity(self.accumulatedHash64.count / 4)
-                variant.resultingArray(self.accumulatedHash64).forEach {
+                self.variant.resultingArray(self.accumulatedHash64).forEach {
                     let item = $0.bigEndian
                     var partialResult = Array<UInt8>()
                     partialResult.reserveCapacity(8)
                     for i in 0..<8 {
-                        let shift = UInt64(8 * i)
-                        partialResult.append(UInt8((item >> shift) & 0xff))
+                        partialResult.append(UInt8((item >> UInt64(8 * i)) & 0xff))
                     }
                     result += partialResult
                 }