Browse Source

Remove Foundation dependency from String

Marcin Krzyżanowski 10 years ago
parent
commit
a43bea67e2
1 changed files with 10 additions and 12 deletions
  1. 10 12
      CryptoSwift/StringExtension.swift

+ 10 - 12
CryptoSwift/StringExtension.swift

@@ -6,50 +6,48 @@
 //  Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
 //
 
-import Foundation
-
 /** String extension */
 extension String {
     
     /** Calculate MD5 hash */
     public func md5() -> String? {
-        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.md5()?.toHexString()
+        return self.utf8.lazy.map({ $0 as UInt8 }).md5()?.toHexString()
     }
     
     public func sha1() -> String? {
-        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.sha1()?.toHexString()
+        return self.utf8.lazy.map({ $0 as UInt8 }).sha1()?.toHexString()
     }
 
     public func sha224() -> String? {
-        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.sha224()?.toHexString()
+        return self.utf8.lazy.map({ $0 as UInt8 }).sha224()?.toHexString()
     }
 
     public func sha256() -> String? {
-        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.sha256()?.toHexString()
+        return self.utf8.lazy.map({ $0 as UInt8 }).sha256()?.toHexString()
     }
 
     public func sha384() -> String? {
-        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.sha384()?.toHexString()
+        return self.utf8.lazy.map({ $0 as UInt8 }).sha384()?.toHexString()
     }
 
     public func sha512() -> String? {
-        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.sha512()?.toHexString()
+        return self.utf8.lazy.map({ $0 as UInt8 }).sha512()?.toHexString()
     }
 
     public func crc32() -> String? {
-        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.crc32()?.toHexString()
+        return self.utf8.lazy.map({ $0 as UInt8 }).crc32()?.toHexString()
     }
 
     public func encrypt(cipher: Cipher) throws -> String? {
-        return try self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.encrypt(cipher)?.toHexString()
+        return try self.utf8.lazy.map({ $0 as UInt8 }).encrypt(cipher)?.toHexString()
     }
 
     public func decrypt(cipher: Cipher) throws -> String? {
-        return try self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.decrypt(cipher)?.toHexString()
+        return try self.utf8.lazy.map({ $0 as UInt8 }).decrypt(cipher)?.toHexString()
     }
     
     public func authenticate(authenticator: Authenticator) -> String? {
-        return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)?.authenticate(authenticator)?.toHexString()
+        return self.utf8.lazy.map({ $0 as UInt8 }).authenticate(authenticator)?.toHexString()
     }
 
 }