Browse Source

Set more variant values on init()

Marcin Krzyżanowski 9 years ago
parent
commit
86385177d0
1 changed files with 10 additions and 4 deletions
  1. 10 4
      Sources/CryptoSwift/SHA2.swift

+ 10 - 4
Sources/CryptoSwift/SHA2.swift

@@ -10,21 +10,24 @@
 
 public final class SHA2: DigestType {
     let variant: Variant
-    var size: Int { return variant.rawValue }
-    var blockSize: Int { return variant.blockSize }
-    var digestLength: Int { return variant.digestLength }
+    let size: Int
+    let blockSize: Int
+    let digestLength: Int
+    private let k:Array<UInt64>
 
     fileprivate var accumulated = Array<UInt8>()
     fileprivate var accumulatedLength: Int = 0
     fileprivate var accumulatedHash32 = Array<UInt32>()
     fileprivate var accumulatedHash64 = Array<UInt64>()
-    fileprivate let k:Array<UInt64>
 
     public init(variant: SHA2.Variant) {
         self.variant = variant
         switch self.variant {
             case .sha224, .sha256:
                 self.accumulatedHash32 = variant.h.map { UInt32($0) } //FIXME: UInt64 for process64
+                self.blockSize = variant.blockSize
+                self.size = variant.rawValue
+                self.digestLength = variant.digestLength
                 self.k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
                         0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
                         0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
@@ -35,6 +38,9 @@ public final class SHA2: DigestType {
                         0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]
             case .sha384, .sha512:
                 self.accumulatedHash64 = variant.h
+                self.blockSize = variant.blockSize
+                self.size = variant.rawValue
+                self.digestLength = variant.digestLength
                 self.k = [0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, 0x3956c25bf348b538,
                           0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, 0xd807aa98a3030242, 0x12835b0145706fbe,
                           0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235,