浏览代码

Update AES part with simplest example and explanation about key length

Marcin Krzyżanowski 8 年之前
父节点
当前提交
56756d02fa
共有 3 个文件被更改,包括 16 次插入2 次删除
  1. 11 0
      README.md
  2. 4 0
      Sources/CryptoSwift/CSArrayType+Extensions.swift
  3. 1 2
      Sources/CryptoSwift/Foundation/Data+Extension.swift

+ 11 - 0
README.md

@@ -286,6 +286,17 @@ let decrypted = try Rabbit(key: key, iv: iv).decrypt(encrypted)
 
 Notice regarding padding: *Manual padding of data is optional, and CryptoSwift is using PKCS7 padding by default. If you need manually disable/enable padding, you can do this by setting parameter for __AES__ class*
 
+Variant of AES encryption (AES-128, AES-192, AES-256) depends on given key length:
+
+- AES-128 = 16 bytes
+- AES-192 = 24 bytes
+- AES-256 = 32 bytes
+
+AES-256 example
+```swift
+try AES(key: [1,2,3,...,32], iv: [1,2,3,...,16], blockMode: .CBC, padding: PKCS7())
+```
+ 
 ######All at once
 ```swift
 do {

+ 4 - 0
Sources/CryptoSwift/CSArrayType+Extensions.swift

@@ -56,6 +56,10 @@ public extension CSArrayType where Iterator.Element == UInt8 {
         return Digest.sha512(cs_arrayValue())
     }
 
+    public func sha2(_ variant: SHA2.Variant) -> [Iterator.Element] {
+        return Digest.sha2(cs_arrayValue(), variant: variant)
+    }
+
     public func sha3(_ variant: SHA3.Variant) -> [Iterator.Element] {
         return Digest.sha3(cs_arrayValue(), variant: variant)
     }

+ 1 - 2
Sources/CryptoSwift/Foundation/Data+Extension.swift

@@ -22,8 +22,7 @@ extension Data {
     }
 
     public func md5() -> Data {
-        let result = Digest.md5(self.bytes)
-        return Data(bytes: result)
+        return Data(bytes: Digest.md5(self.bytes))
     }
 
     public func sha1() -> Data {