2011-09-07 42 views
0

我在我的iOS应用程序中使用openssl进行RSA加密。 我必须将publicKey发送到SOAP webservice ..我已经能够生成密钥对,解密/解密数据,但我想知道是否有方法在控制台上显示密钥? 有人知道吗?iOS/Objective C:由OpenSSL生成的显示密钥对

打开SSL是写在C..So我得到这个结构..

struct 
     { 
     BIGNUM *n;    // public modulus 
     BIGNUM *e;    // public exponent 
     BIGNUM *d;    // private exponent 
     BIGNUM *p;    // secret prime factor 
     BIGNUM *q;    // secret prime factor 
     BIGNUM *dmp1;   // d mod (p-1) 
     BIGNUM *dmq1;   // d mod (q-1) 
     BIGNUM *iqmp;   // q^-1 mod p 
     // ... 
     }; 
RSA 

documentation我发现功能RSA_print ..但我不知道如何使用它right..All我的尝试失败了... :(

有任何人的想法?

+0

使用'NSLog'记录任何你喜欢的控制台。 – PengOne

+0

请注意,您可能不想在发布的版本上记录私钥...... –

+0

所以这实际上是一个加密问题 - 您如何计算上述数据中的密钥(或者从openSSL函数中提取它们) 。 –

回答

0

尝试的第一件事是NSLog(@"Here is my object: %@", [someobject description]);

description几乎适用于所有Objective-C类(甚至是你的)。在某些情况下(默认行为),它只显示类名和对象地址,但在其他情况下(取决于类开发人员的兴趣),它会令人愉快地格式化对象的内部。它通常适用于NSArray,NSDictionary,NSData和大多数其他常见数据类型。

+0

OpenSSL是没有自然的Objective-C框架..它是用C写的..我改变了我的问题... – tonistair

0

您可以检查t his answer以获取有关如何从RSA结构获取密钥的一些线索。
为了做到调试,可以使用带%i的NSLog代替整数的%@,或者在回调函数中设置断点,并使用GDB调试器控制台,它的强大的po命令。你应该能够做到这样的事情,如po rsa.e

+0

谢谢你的回答,但我不认为这篇文章会帮助我..这是为cl我想( ?)。我发现一个函数RSA_print,但我不知道如何使用它...我改变了我的问题。 – tonistair