VPCCMCrypt 0.0.1

VPCCMCrypt 0.0.1

测试已测试
语言语言 Obj-CObjective C
许可 自定义
发布最新发布2014年12月

未认领 维护。



  • Bill Panagiotopoulos

Objective-C 中具有流支持的 AES/CCM 实现

特性

  • AES/128 - ECB 模式
  • 对大文件的流支持
  • 数据到数据加密/解密
  • 文件到文件加密/解密
  • 流加密/解密,允许您将数据块上传到服务器
  • 所有操作仅使用 16kb 的内存

初始化

NSData *key = ...
NSData *iv = ...
NSData *adata = ...
NSInteger tagLength = ...

VPCCMCrypt *ccm = [[VPCCMCrypt alloc] initWithKey:key
                                               iv:iv
                                            adata:adata
                                        tagLength:tagLength];

如何使用

数据到数据加密

NSData *plainData = ...

[ccm encryptDataWithData:plainData finishedBlock:^(NSData *data) {
        //Do something with data
} errorBlock:^(NSError *error) {
        NSLog(@"Encryption Error: %@", error);
}];


数据到数据解密

NSData *encryptedData = ...

[ccm decryptDataWithData:encryptedData finishedBlock:^(NSData *data) {
        //Do something with data
} errorBlock:^(NSError *error) {
        NSLog(@"Decryption Error: %@", error);
}];

文件到文件加密

NSURL *sourceURL = ...
NSURL *destinationURL = ...

[ccm encryptFileToFileWithSourceURL:sourceURL
                            destUrl:destinationURL
                      finishedBlock:^{
                          //Encryption finished
                      } errorBlock:^(NSError *error) {
                          NSLog(@"Encryption Error: %@", error);
                      }];

文件到文件解密

NSURL *sourceURL = ...
NSURL *destinationURL = ...

[ccm decryptFileToFileWithSourceURL:sourceURL
                            destUrl:destinationURL
                      finishedBlock:^{
                          //Decryption finished
                      } errorBlock:^(NSError *error) {
                          NSLog(@"Encryption Error: %@", error);
                      }];

流加密

NSURL *fileUrl = ...
[ccm encryptStreamWithUrl:fileUrl
                dataBlock:^(NSData *data, BOOL isLastBlock) {
                    if (isLastBlock) {
                        //data = TAG
                    }
                    //Upload data to server

                } errorBlock:^(NSError *error) {
                    NSLog(@"Encryption Error: %@", error);
                }];

流解密

NSURL *fileUrl = ...
[ccm decryptStreamWithUrl:fileUrl
                dataBlock:^(NSData *data, BOOL isLastBlock) {
                    //Do something with the decrypted data

                } errorBlock:^(NSError *error) {
                    NSLog(@"Decryption Error: %@", error);
                }];

特别感谢 Thanos Chatziathanasiou ([email protected]) 的帮助