Browse Source

Update README

Marcin Krzyżanowski 9 years ago
parent
commit
733687b278
1 changed files with 29 additions and 23 deletions
  1. 29 23
      README.md

+ 29 - 23
README.md

@@ -57,6 +57,9 @@ Good mood
 - [PKCS#7](http://tools.ietf.org/html/rfc5652#section-6.3)
 - [PKCS#7](http://tools.ietf.org/html/rfc5652#section-6.3)
 - NoPadding
 - NoPadding
 
 
+#####Password-Based Key Derivation Function
+- [PBKDF2](http://tools.ietf.org/html/rfc2898#section-5.2) (Password-Based Key Derivation Function 2)
+
 ##Why
 ##Why
 [Why?](https://github.com/krzyzanowskim/CryptoSwift/issues/5) [Because I can](https://github.com/krzyzanowskim/CryptoSwift/issues/5#issuecomment-53379391).
 [Why?](https://github.com/krzyzanowskim/CryptoSwift/issues/5) [Because I can](https://github.com/krzyzanowskim/CryptoSwift/issues/5#issuecomment-53379391).
 
 
@@ -139,6 +142,17 @@ You can use [Swift Package Manager](https://swift.org/package-manager/) and spec
 import CryptoSwift
 import CryptoSwift
 ```
 ```
 
 
+#####Conversion between NSData and [UInt8]
+
+For you convenience CryptoSwift provide two function to easily convert array of bytes to NSData and other way around:
+
+```swift
+let data: NSData = NSData(bytes: [0x01, 0x02, 0x03])
+let bytes:[UInt8] = data.arrayOfBytes()
+```
+
+#####Calculate Hash
+
 For your convenience you should use extensions methods like encrypt(), decrypt(), md5(), sha1() and so on.
 For your convenience you should use extensions methods like encrypt(), decrypt(), md5(), sha1() and so on.
 
 
 Hashing a data or array of bytes (aka `Array<UInt8>`)
 Hashing a data or array of bytes (aka `Array<UInt8>`)
@@ -152,7 +166,6 @@ let output = input.md5()
 print(output.toHexString())
 print(output.toHexString())
 ```
 ```
 
 
-
 ```swift
 ```swift
 let data = NSData()
 let data = NSData()
 
 
@@ -173,7 +186,17 @@ Hashing a String and printing result
 
 
 ```swift
 ```swift
 let hash = "123".md5()
 let hash = "123".md5()
-```    
+```
+
+#####Message authenticators
+
+```swift
+// Calculate Message Authentication Code (MAC) for message
+let mac: [UInt8] = try! Authenticator.Poly1305(key: key).authenticate(message)
+let hmac: [UInt8] = try! Authenticator.HMAC(key: key, variant: .sha256).authenticate(message)
+```
+
+#####Data Padding
     
     
 Some content-encryption algorithms assume the input length is a multiple of k octets, where k is greater than one. For such algorithms, the input shall be padded.
 Some content-encryption algorithms assume the input length is a multiple of k octets, where k is greater than one. For such algorithms, the input shall be padded.
 
 
@@ -181,23 +204,22 @@ Some content-encryption algorithms assume the input length is a multiple of k oc
 let paddedData = PKCS7().add(arr, blockSize: AES.blockSize)
 let paddedData = PKCS7().add(arr, blockSize: AES.blockSize)
 ```
 ```
 
 
-Working with Ciphers
-
-ChaCha20
+####Working with Ciphers
+#####ChaCha20
 
 
 ```swift
 ```swift
 let encrypted: [UInt8] = ChaCha20(key: key, iv: iv).encrypt(message)
 let encrypted: [UInt8] = ChaCha20(key: key, iv: iv).encrypt(message)
 let decrypted: [UInt8] = ChaCha20(key: key, iv: iv).decrypt(encrypted)
 let decrypted: [UInt8] = ChaCha20(key: key, iv: iv).decrypt(encrypted)
 ```
 ```
 
 
-Rabbit
+#####Rabbit
 
 
 ```swift
 ```swift
 let encrypted = Rabbit(key: key, iv: iv)?.encrypt(plaintext)
 let encrypted = Rabbit(key: key, iv: iv)?.encrypt(plaintext)
 let decrypted = Rabbit(key: key, iv: iv)?.decrypt(encrypted!)
 let decrypted = Rabbit(key: key, iv: iv)?.decrypt(encrypted!)
 ```
 ```
 
 
-AES
+#####AES
 
 
 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*
 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*
 
 
@@ -260,22 +282,6 @@ let encrypted: NSData = try! plain.encrypt(ChaCha20(key: key, iv: iv))
 let decrypted: NSData = try! encrypted.decrypt(ChaCha20(key: key, iv: iv))
 let decrypted: NSData = try! encrypted.decrypt(ChaCha20(key: key, iv: iv))
 // plain == decrypted
 // plain == decrypted
 ```
 ```
-	
-Message authenticators
-
-```swift
-// Calculate Message Authentication Code (MAC) for message
-let mac: [UInt8] = try! Authenticator.Poly1305(key: key).authenticate(input)
-```
-
-#####Conversion between NSData and [UInt8]
-
-For you convenience CryptoSwift provide two function to easily convert array of bytes to NSData and other way around:
-
-```swift
-let data: NSData = NSData(bytes: [0x01, 0x02, 0x03])
-let bytes:[UInt8] = data.arrayOfBytes()
-```
 
 
 ##Author
 ##Author