-
Notifications
You must be signed in to change notification settings - Fork 81
Closed
Description
There is a fairly fatal bug in the final() method in Digest.swift that means only MD5 digest work because the digest length is hardcoded to CC_MD5_DIGEST_LENGTH. Here's the patch I used in my subtree to fix it:
--- /git/Payment/Clients/iOS/Subtrees/IDZSwiftCommonCrypto/IDZSwiftCommonCrypto/Digest.swift 2015-10-19 10:48:43.000000000 +1100
+++ /var/folders/kt/5zxmzkk94vqbyjn9bb6_wtt80000gp/T/qWhPjp_Digest.swift 2015-10-20 12:27:03.000000000 +1100
@@ -115,14 +115,14 @@
var initializer : Initializer
var updater : Updater
var finalizer : Finalizer
- var length : Int32
+ var length : Int
init(initializer : Initializer, updater : Updater, finalizer : Finalizer, length : Int32)
{
self.initializer = initializer
self.updater = updater
self.finalizer = finalizer
- self.length = length
+ self.length = Int(length)
initializer(context)
}
@@ -138,8 +138,7 @@
func final() -> [UInt8]
{
- let digestLength = Int(CC_MD5_DIGEST_LENGTH)
- var digest = Array<UInt8>(count:digestLength, repeatedValue: 0)
+ var digest = Array<UInt8>(count:length, repeatedValue: 0)
finalizer(&digest, context)
return digest
}
Metadata
Metadata
Assignees
Labels
No labels
