- Update Pod
This commit is contained in:
1 parent
ef4deb51f6
commit
6a5119dbe3
108 files changed
+13081
-7351
No files matched your search
Generated
+71
@@ -0,0 +1,71 @@
|
||||
NACrypto
|
||||
=========
|
||||
|
||||
You should be using [NAChloride](https://github.com/gabriel/NAChloride) (libsodium/NaCl) instead. This is for advanced crypto only.
|
||||
|
||||
The following use Apple's CommonCrypto framework:
|
||||
|
||||
* HMAC: *SHA1*, *SHA2*
|
||||
* Digest: *SHA2*
|
||||
* AES (256-CTR)
|
||||
|
||||
The following are implemented from included reference C libraries:
|
||||
|
||||
* HMAC: *SHA3/Keccak*
|
||||
* Digest: *SHA3/Keccak*
|
||||
* TwoFish (CTR)
|
||||
|
||||
# Podfile
|
||||
|
||||
```ruby
|
||||
pod "NACrypto"
|
||||
```
|
||||
|
||||
# HMAC (SHA1, SHA2, SHA3)
|
||||
|
||||
```objc
|
||||
NSData *mac1 = [NAHMAC HMACForKey:key data:data algorithm:NAHMACAlgorithmSHA2_512];
|
||||
NSData *mac2 = [NAHMAC HMACForKey:key data:data algorithm:NAHMACAlgorithmSHA3_512];
|
||||
```
|
||||
|
||||
# AES (256-CTR)
|
||||
|
||||
```objc
|
||||
// Nonce should be 16 bytes
|
||||
// Key should be 32 bytes
|
||||
NAAES *AES = [[NAAES alloc] initWithAlgorithm:NAAESAlgorithm256CTR];
|
||||
NSData *encrypted = [AES encrypt:message nonce:nonce key:key error:&error];
|
||||
```
|
||||
|
||||
# TwoFish (CTR)
|
||||
|
||||
```objc
|
||||
// Nonce should be 16 bytes
|
||||
// Key should be 32 bytes
|
||||
NATwoFish *twoFish = [[NATwoFish alloc] init];
|
||||
NSData *encrypted = [twoFish encrypt:message nonce:nonce key:key error:&error];
|
||||
```
|
||||
|
||||
# Digest (SHA2, SHA3)
|
||||
|
||||
```objc
|
||||
NSData *digest1 = [NADigest digestForData:data algorithm:NADigestAlgorithmSHA2_256];
|
||||
NSData *digest2 = [NADigest digestForData:data algorithm:NADigestAlgorithmSHA3_512];
|
||||
|
||||
// Directly use SHA3
|
||||
NSData *sha = [NASHA3 SHA3ForData:data digestBitLength:512];
|
||||
```
|
||||
|
||||
# Keychain Utils
|
||||
|
||||
```objc
|
||||
NSData *key = [NASecRandom randomData:32 error:&error];
|
||||
[NAKeychain addSymmetricKey:key applicationLabel:@"NACrypto" tag:nil label:nil];
|
||||
NSData *keyOut = [NAKeychain symmetricKeyWithApplicationLabel:@"NACrypto"];
|
||||
```
|
||||
|
||||
# NSData Utils
|
||||
```objc
|
||||
NSData *data = [@"deadbeef" na_dataFromHexString];
|
||||
[data na_hexString]; // @"deadbeef";
|
||||
```
|
||||
Reference in new issue
Block a user