소스 검색

Fixes for linux.

Michael Ledin 9 년 전
부모
커밋
e78c5cc337
2개의 변경된 파일13개의 추가작업 그리고 1개의 파일을 삭제
  1. 7 1
      Sources/CryptoSwift/CSArrayType+Extensions.swift
  2. 6 0
      Sources/CryptoSwift/String+Extension.swift

+ 7 - 1
Sources/CryptoSwift/CSArrayType+Extensions.swift

@@ -18,7 +18,13 @@ extension Array: CSArrayType {
 
 public extension CSArrayType where Iterator.Element == UInt8 {
     public func toHexString() -> String {
-        return self.lazy.reduce("") { $0 + String(format:"%02x", $1) }
+        return self.lazy.reduce("") {
+            var s = String($1, radix: 16)
+            if s.characters.count == 1 {
+                s = "0" + s
+            }
+            return $0 + s
+        }
     }
 }
 

+ 6 - 0
Sources/CryptoSwift/String+Extension.swift

@@ -52,4 +52,10 @@ extension String {
     public func authenticate<A: Authenticator>(with authenticator: A) throws -> String {
         return try self.utf8.lazy.map({ $0 as UInt8 }).authenticate(with: authenticator).toHexString()
     }
+    
+    #if !_runtime(_ObjC)
+    public func hasPrefix(_ prefix: String) -> Bool {
+        return prefix == String(self.characters.prefix(prefix.characters.count))
+    }
+    #endif
 }