UNNetPGP 0.8.1

UNNetPGP 0.8.1

测试经过测试
语言语言 CC
许可证 Apache 2
发布上次发布2017年8月

Marcin Krzyżanowski 维护。



UNNetPGP 0.8.1

  • Marin Krzy¿anowski 和 Nominet UK

UNNetPGP 是 NetPGP 的 Objective-C 包装器,适用于 iOS。

关于

您寻找的 PGP 解决方案就在这里。操作级别的 C API,加上围绕它的 Objective-C 包装器,即可加密和解密 PGP 消息。基于 NetPGP,这是一个符合标准的库和一系列实用工具,提供数字签名和验证功能,以及使用 RSA 和 DSA/Elgamal 密钥进行数据加密和解密。

安装

此软件包旨在与 Cocoapods 一起使用,以满足 OpenSSL 依赖项。

  • 使用 Cocoapods

将以下内容添加到您的 Podfile

pod 'UNNetPGP', :podspec => 'https://raw.github.com/upnext/unnetpgp/master/UNNetPGP.podspec'
  • 不使用 Cocoapods

像 Source Trees 这样的东西应该可以解决问题,但我们尚未测试。欢迎提交拉取请求。

使用方法

初始化和设置

UNNetPGP *pgp = [[UNNetPGP alloc] initWithUserId:@"[email protected]"];
pgp.password = @"secret1234";
pgp.armored  = YES

可选地,您可以指定家庭目录之外的 ringfiles

pgp.publicKeyRingPath = [[self documentsDirectory] stringByAppendingPathComponent:@"pubring.gpg"];
pgp.secretKeyRingPath = [[self documentsDirectory] stringByAppendingPathComponent:@"secring.gpg"];

让我们定义文件名。注意:对于某些文件,文件扩展名很重要!(《gpg》,《asc》)

NSString *plaintextFile = [myDir stringByAppendingPathComponent:@"plain.txt"];
NSString *encryptedFile = [myDir stringByAppendingPathComponent:@"plain.txt.gpg"];
NSString *decryptedFile = [myDir stringByAppendingPathComponent:@"plain.decoded.txt"];
NSString *signatureFile = [myDir stringByAppendingPathComponent:@"plain.txt.asc"];

加密文件

BOOL result = [pgp encryptFileAtPath:plainFilePath toFileAtPath:encryptedFilePath options:UNEncryptOptionNone];
NSLog(@"encryptedFilePath = %@",@(result));

解密文件

BOOL result = [pgp decryptFileAtPath:encryptedFilePath toFileAtPath:decryptedFilePath];
NSLog(@"decryptFileAtPath = %@",@(result));

生成新密钥(并保存在密钥环中)

BOOL success = [pgp generateKey:1024];

创建文件签名

BOOL success = [pgp signFileAtPath:plaintextFile writeToFile:signatureFile detached:YES];

验证文件签名。注意:假设签名文件存在于相同的目录中。

BOOL success = [pgp verifyFileAtPath:signatureFile];

作者

Marin Krzy¿anowski