Tag: openssl

OpenSSL RSA_public_encrypt奇怪的行为

我想用C编写一个简单的encryption程序,我发现了一些奇怪的东西。 我不是C大师,也不是OpenSSL专业人员。 所以我可能犯了一个错误。 function如下 char *rsa_encrypt(char *data) { const char xponent_in_hex[] = "010001"; const char modulus_in_hex[] = "D0BA16F11907E7B0819705A15264AC29BEE9F1EC5F22642992 D3E27100B7F212864A624A12FFB6D531712B0B0225AAD0C2E313D077A7DB2A5A33483EEFF41A9D"; BIGNUM *xponent = NULL; BIGNUM *modulus = NULL; BN_hex2bn(&xponent, xponent_in_hex); BN_hex2bn(&modulus, modulus_in_hex); RSA *rsa = RSA_new(); rsa->e = xponent; rsa->n = modulus; rsa->iqmp = NULL; rsa->d = NULL; rsa->p = NULL; rsa->q = NULL; char encoded[512] […]

在iOS中解码OpenSSL AES256string

CLI $ echo -n "TEST1" | openssl enc -aes256 -k FUUU -nosalt -a bYbkQJcDFZt3y3UQEMbEeg== iOS版 NSString *leSYT = @"bYbkQJcDFZt3y3UQEMbEeg=="; NSData *data = [NSData dataFromBase64String:leSYT]; NSLog(@"%@",[data AES256DecryptWithKey:@"FUUU"]); iOS失败后不输出任何内容。 我错过了什么? NSData增加: http : //pastie.org/426530 // Matt Gallagher的NSData + Base64

在iOS模拟器上使用localhost的CFNetwork SSLHandshake失败(-9807)

我正尝试使用TCP SSL连接openssl s_server和iOS客户端,但获取CFNetwork SSLHandshake failed (-9807) 。 Objective-C代码( 从这里 ): – (void)viewDidLoad { [super viewDidLoad]; printf("method started \n"); NSBundle *bundle = [NSBundle bundleForClass:[self class]]; NSData *iosTrustedCertDerData = [NSData dataWithContentsOfFile:[bundle pathForResource:@"servercert" ofType:@"der"]]; OSStatus err = noErr; SecCertificateRef cert; cert = SecCertificateCreateWithData(NULL, (CFDataRef) iosTrustedCertDerData); assert(cert != NULL); CFTypeRef result; NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys: (id)kSecClassCertificate, kSecClass, cert, […]

是否有可能使用ios中的安全框架生成证书签名请求(.csr)?

我想要使​​用服务器的https请求客户端证书身份validation。 我看着这个NSURLConnection身份validation挑战创build一个SecCertificateRef 。 它按预期工作。 但是,需要准备包含私钥的p12文件。 它会被securied,因为它需要使用SecPKCS12Import()导入p12文件的密码。 但是,可以有其他的select。 这就是ios客户端应该做一个证书签名请求(.CSR),让第三方(这将是服务器)签名。 对于我的search,我看到我可以使用SecKeyGeneratePair()生成密钥对。 但是我没有看到任何生成CSR的API。 这是否真的需要openssl来实现呢? 另外,有一点closures的话题,一旦ios客户端以某种方式取回签名的证书。 我可以使用SecCertificateCreateWithData()来检索一个SecCertificateRef() 。 但要填写NSURLCredential 。 我还需要使用SecPKCS12Import()从p12文件来的SecPKCS12Import() 。 我怎样才能retreve SecIdentityRef没有SecPKCS12Import()而只是像crt或der证书文件?

无法解密通过iPhone上的OpenSSL编码的数据

对我之前的问题的一种跟进: 如何从OpenSSLencryption数据获得初始化向量(iv) 我正在使用OpenSSL命令行工具来encryption一个string,然后尝试使用<CommonCrypto/CommonCryptor.h>来解密iPhone上的string。 使用Dropbox SDK,将带有encryptionstring的xml文件加载到iPhone上,在那里我的应用程序试图parsing和解密此文件中的string。 这是openssl命令的一个例子: printf %s "Hello" | openssl enc -aes-128-cbc -K 00ff349830193845af43984758690213 -iv 0 -base64 上面的base 64string放在一个XML文件中,然后由应用程序parsing。 我正在使用Matt Gallagher的NSData来解码base64文本。 我假设这工作正常; 我还没有真正find一个testing它的好方法。 (来源: http : //cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html )。 以下是解密encryptionstring的方法。 关键是在这种情况下的NSString等于@"00ff349830193845af43984758690213" 。 + (NSString *)string:(NSString *)encryptedString withAES128Key:(NSString *)key { // decode base64, from Matt Gallagher's NSData category NSData *b64DecodedData = [NSData dataFromBase64String:encryptedString]; NSData *keyData = […]

iOS中的PBEWithMD5AndDESencryption

我在iOS中遇到PBEWithMD5AndDESencryption问题。 我有我的string使用此encryption和解密, https://gist.github.com/788840/24bc73ecd0ac3134cbd242892c74a06ac561d37b 。 问题是我得到不同的encryption值取决于我的方法在哪个类。例如,我将所有的encryption方法移动到一个帮助类,并运行它。 我注意到我得到了一个不同的encryption值。 我现在在不同的类中有相同的方法的两个相同的版本,我并排运行它们。 他们获得不同的encryption值,而且不能解密其他人的值。 我有点沉迷于此。 这是encryption/解密的助手类。 @implementation CryptoHelper #pragma mark – #pragma mark Init Methods – (id)init { if(self = [super init]) { } return self; } #pragma mark – #pragma mark String Specific Methods /** * Encrypts a string for social blast service. * * @param plainString The string to […]

如何使一个有效的p12文件被SecPKCS12Import正确导入

我已经解决了将XML RSA私钥转换为PEM文件的先决条件问题,但遇到导入P12私钥时收到空数据的另一个问题。 以下是我的步骤: 将PEM文件转换为P12文件 openssl> pkcs12 -export -in rsa.pem -inkey rsa.pem -out rsa.p12 -nocerts 阅读P12文件到iOS项目 NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"MyPrivateKey" ofType:@"p12"]; NSData *p12data = [NSData dataWithContentsOfFile:path]; if (![self getPrivateKeyRef]) RSAPrivateKey = getPrivateKeywithRawKey(p12data); 导入P12私钥 SecKeyRef getPrivateKeywithRawKey(NSData *pfxkeydata) { NSMutableDictionary * options = [[[NSMutableDictionary alloc] init] autorelease]; // Set the public key query dictionary //change […]

我失去了我的公钥。 我可以从私钥恢复吗?

我为iOS / OSX开发创build了一个密钥对+签名证书。 一路上,我丢失了与我的私钥一起使用的公钥。 也许这是因为钥匙串访问不会将私钥和公钥集合在一起,就像它与证书和私钥一样(这太恼人了!为什么它不这样做!) 在钥匙串访问中,我仍然可以右键单击私钥 – >“请求证书”; 但没有可用的公钥,我得到错误“指定的项目不能在钥匙串中find”。 我很确定公钥是可以恢复的,但是如何呢? 显然,钥匙串访问不够智能自动执行。 我终于明白了这一点,几天后我的答案就会正确无误,除非有人给答案增加新的东西。

如何在一个有效的方式在一个iOS项目上包含OpenSSL

我已经按照networking上的所有教程来做到这一点。 一切工作正常,直到我添加到一个类的这一行: #import <openssl/pkcs7.h> 然后我有这个错误“openssl / pkcs7.h”文件没有find 。 Xcode有多糟? 我将每个文件拖到Xcode和文件无法find? 这是我现在的结构: 该应用有2个目标,openSSL必须安装在iPad上? 我已经使用这个脚本 iPad目标位于相对于基本目录path的以下path中:“Myapp ipad” 该脚本生成了两个文件“libcrypto.a”和“libssl.a”。 这两个文件在“Mhapp ipad”(=“Myapp ipad / lib”)中名为“lib”的目录中 该脚本还生成了一个包含大量文件的“include / openssl”目录。 我已经把它拖到“Myapp ipad”。 所以现在在“MyApp ipad / include” 如何填写searchpath,库searchpath,以便使其工作?

为Xcode安装OpenSSL库

我在xcode中安装了OpenSSL进行接收validation,但是它不起作用。 我下载了openssl.xcodeproj和openssl-1.0.1f 。 我解压openssl-1.0.1f并将openssl.xcodeproj添加到我的项目中。 我将Header Search Path编辑为: /Users/marko/Documents/Razvoj/BIView\ Mobile\ New\ Version/openssl/include/openssl 我在Build libcrypto.a的Target Dependencies下添加了libcrypto.a 并在Link Binary With Libraries添加了libcrypto.a 如http://atastypixel.com/blog/easy-inclusion-of-openssl-into-iphone-app-projects/中所述 。 但是当我build立项目,它会停止与错误: clang: error: no such file or directory: '/Users/ …. -bmgslnakszsfovecplbzoslykrxo/Build/Products/Debug-iphoneos/libcrypto.a' 为什么?