2012-07-17 49 views
3

请人从指数和弹性模量是创建SecKeyRef帮我Public exponent = 和Public Modulus = 008903fb6d15f352ed3b45add3216f632f7139954a5631337aba7d645ed38482e3a810b4db26aab4d1df58c147230f0c75631a3dd0554b50de44e79f4fcf205c89fd3f80e0ff8d16c2e9f56ed3ab177953d54c9c30357d04e677cedd9912906ef8a046d7b0185b7f2022a8e435b0c6ecaef93f089fc3aa3f3677550b5d842046c7,我想用这个SecKeyEncrypt作为公钥如何从公共密钥的指数和模量创建SeckeyRef和SecKeyEncrypt方法使用

+0

主任Purnima, 你能粘贴完整代码。我看到代码转换指数&模数为NSData,但我没有转换为SecRefKey(这是首选公钥)。提前致谢。 -Kiran – 2012-10-01 11:07:17

回答

0

解决了问题NSData *publicTag=[self PublicKeyItems];生成密钥对和调用方法
尝试导入BasicEncodingRules.h和.M在文件

- (NSData *)PublicKeyItems 
{ 
NSString *exp = @"010001"; 
NSLog(@"Publickeyexp -%@",exp); 
NSData *publickeyexpdata= [self stringasdata:exp]; 
NSLog(@"publickeyexpdata = %@",publickeyexpdata); 
NSString *mod = @"008903fb6d15f352ed3b45add3216f632f7139954a5631337aba7d645ed38482e3a810b4db26aab4d1df58c147230f0c75631a3dd0554b50de44e79f4fcf205c89fd3f80e0ff8d16c2e9f56ed3ab177953d54c9c30357d04e677cedd9912906ef8a046d7b0185b7f2022a8e435b0c6ecaef93f089fc3aa3f3677550b5d842046c7"; 
NSLog(@"Publickeymod -%@",mod); 
NSData *publickeymoddata= [self stringasdata:mod]; 
NSLog(@"publickeymod = %@",publickeyexpdata); 

NSMutableArray *publicarray = [[NSMutableArray alloc] init]; 
[publicarray addObject:publickeyexpdata]; 
[publicarray addObject:publickeymoddata]; 
NSData *testData = [publicarray berData]; 
NSLog(@"testdata = %@",testData); 
NSMutableArray *testArray2 = [testData berDecode]; 
NSLog(@"testarray = %@",testArray2); 
//STAssertEqualObjects(testArray, testArray2, 
        // @"Big items decode failed"); 

NSData *testData2 = [testArray2 berData]; 
NSLog(@"PublicKeyData using Publickeyitems = %@",testData2); 
return testData2; 
} 
-(NSData *)stringasdata:(NSString *)command { 
command = [command stringByReplacingOccurrencesOfString:@" " withString:@""]; 
command = [command stringByReplacingOccurrencesOfString:@"<" withString:@""]; 
command = [command stringByReplacingOccurrencesOfString:@">" withString:@""]; 
NSLog(@"command= %@",command); 
NSMutableData *commandToSend= [[NSMutableData alloc] init]; unsigned char whole_byte; 
int len = [command length]; 
int n = len/2; 
char byte_chars[3] = {'\0','\0','\0'}; int i; 
for (i=0; i < n; i++) { 
    byte_chars[0] = [command characterAtIndex:i*2]; byte_chars[1] = [command   characterAtIndex:i*2+1]; whole_byte = strtol(byte_chars, NULL, 16); [commandToSend appendBytes:&whole_byte length:1]; 
} 
// [commandToSend setLength:[commandToSend length]-1]; 
return commandToSend; 

} 
+0

我几乎不是一个Objective-C向导,但是我没有理解你在这段代码中做什么。你能解释一下吗? – 2012-07-17 21:02:10

+1

我想通过方法 – 012346 2012-07-18 05:33:25

+0

使用指数和模数来获取公钥。我不知道这是否重要,你可能应该添加模数,然后指数到数组。它对你有用吗? – LightMan 2012-12-11 19:43:14

相关问题