Browse Source

[README.md] Add Swift syntax highlighting

Ayaka Nonaka 10 years ago
parent
commit
20dd7d7ee9
1 changed files with 68 additions and 47 deletions
  1. 68 47
      README.md

+ 68 - 47
README.md

@@ -58,90 +58,111 @@ By default project is setup for iOS. You need to switch to OSX SDK manually [see
 
 You can use [CocoaPods](http://cocoapods.org/?q=cryptoSwift). You need version 0.36 or newer to use Swift framework.
 
-    pod 'CryptoSwift'
+```ruby
+pod 'CryptoSwift'
+```
 
 ##Usage
 
-    import CryptoSwift
+```swift
+import CryptoSwift
+```
 
 Generally you should use `CryptoSwift.Hash`,`CryptoSwift.Cipher` enums or convenience extensions
 
 Hash enum usage
-    
-    /* Hash enum usage */
-    var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
-    if let data = CryptoSwift.Hash.md5(data).calculate() {
-        println(data.hexString)
-    }
+```swift
+/* Hash enum usage */
+var data:NSData = NSData(bytes: [49, 50, 51] as [Byte], length: 3)
+if let data = CryptoSwift.Hash.md5(data).calculate() {
+    println(data.hexString)
+}
+```
     
 Hashing a data
+
+```swift
+let hash = data.md5()
+let hash = data.sha1()
+let hash = data.sha224()
+let hash = data.sha256()
+let hash = data.sha384()
+let hash = data.sha512()
 	
-	let hash = data.md5()
-	let hash = data.sha1()
-    let hash = data.sha224()
-	let hash = data.sha256()
-	let hash = data.sha384()
-	let hash = data.sha512()
-	
-	let crc = data.crc32()
-	
-	println(hash.hexString)
+let crc = data.crc32()
+
+println(hash.hexString)
+```
 	
 Hashing a String and printing result
 
-    if let hash = "123".md5() {
-        println(hash)
-    }
+```swift
+if let hash = "123".md5() {
+    println(hash)
+}
+```    
     
 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
 
-	let paddedData = PKCS7(data: dataToEncrypt).addPadding(AES.blockSizeBytes())
-    
+```swift
+let paddedData = PKCS7(data: dataToEncrypt).addPadding(AES.blockSizeBytes())
+```
+
 Working with Ciphers
 
 ChaCha20
 
-	let chacha20Encrypted = Cipher.ChaCha20(key: keyData, iv: ivData).encrypt(dataToEncrypt)
-	let decryptedChaCha20 = Cipher.ChaCha20(key: keyData, iv: ivData).decrypt(encryptedData)
+```swift
+let chacha20Encrypted = Cipher.ChaCha20(key: keyData, iv: ivData).encrypt(dataToEncrypt)
+let decryptedChaCha20 = Cipher.ChaCha20(key: keyData, iv: ivData).decrypt(encryptedData)
+```
 
 AES
 
 Notice regarding padding: *Manual padding of data is optional and CryptoSwift by default always will add PKCS7 padding before encryption, and remove after decryption when __Cipher__ enum is used. If you need manually disable/enable padding, you can do this by setting parameter for encrypt()/decrypt() on class __AES__.*
 
-	// 1. Add padding (Optional)
-	let plaintextData = PKCS7(data: plaintextData).addPadding(AES.blockSizeBytes())
-	
-	// 2. Encrypt with key and random IV
-	let keyData = NSData.withBytes([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00])
-	let ivData:NSData = Cipher.randomIV(keyData)
+```swift
+// 1. Add padding (Optional)
+let plaintextData = PKCS7(data: plaintextData).addPadding(AES.blockSizeBytes())
+
+// 2. Encrypt with key and random IV
+let keyData = NSData.withBytes([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00])
+let ivData:NSData = Cipher.randomIV(keyData)
+
+let encryptedData = Cipher.AES(key: keyData, iv: ivData, blockMode: .CBC).encrypt(plaintextData)
 	
-	let encryptedData = Cipher.AES(key: keyData, iv: ivData, blockMode: .CBC).encrypt(plaintextData)
-		
-	// 3. decrypt with key and IV
-	let decryptedData = Cipher.AES(key: keyData, iv: ivData, blockMode: .CBC).decrypt(encryptedData)
+// 3. decrypt with key and IV
+let decryptedData = Cipher.AES(key: keyData, iv: ivData, blockMode: .CBC).decrypt(encryptedData)
 	
-	// 4. remove padding ONLY IF applied earlier (Optional)
-	let plaintextData = PKCS7(data: decryptedData).removePadding()	
+// 4. remove padding ONLY IF applied earlier (Optional)
+let plaintextData = PKCS7(data: decryptedData).removePadding()	
+```
 	
 AES without data padding
 
-	let aes = AES(key: keyData, iv: ivData, blockMode: .CBC) // CBC is default
-	let encryptedData = aes?.encrypt(plaintextData, addPadding: false)
-	let decryptedData = aes?.decrypt(encryptedData, removePadding: false)
+```swift
+let aes = AES(key: keyData, iv: ivData, blockMode: .CBC) // CBC is default
+let encryptedData = aes?.encrypt(plaintextData, addPadding: false)
+let decryptedData = aes?.decrypt(encryptedData, removePadding: false)
+```
 
 Using extensions
 	
-	// convenience setup tuple
-	let setup = (key: keyData, iv: ivData)
+```swift
+// convenience setup tuple
+let setup = (key: keyData, iv: ivData)
 
-	let encrypted = dataToEncrypt.encrypt(Cipher.ChaCha20(setup))
-	let decrypted = encrypted.decrypt(Cipher.ChaCha20(setup))
+let encrypted = dataToEncrypt.encrypt(Cipher.ChaCha20(setup))
+let decrypted = encrypted.decrypt(Cipher.ChaCha20(setup))
+```
 	
 Message authenticators
 
-	// Calculate Message Authentication Code (MAC) for message
-	let mac = Authenticator.Poly1305(key: key).authenticate(message)
-    
+```swift
+// Calculate Message Authentication Code (MAC) for message
+let mac = Authenticator.Poly1305(key: key).authenticate(message)
+```
+
 ##Contact
 Marcin Krzyżanowski [@krzyzanowskim](http://twitter.com/krzyzanowskim)