为什么以下编译?我收到警告告诉我
getTest()返回一个原始类型,因此getTestIntegers()被删除
但我不明白为什么,getTestIntegers()不是通用的.我本来希望List<String> tester = Test.getTest().getTestIntegers()产生编译错误
public class Scratchpad {
public static void main(String[] args) {
new Scratchpad().run();
}
private void run() {
List<String> tester = Test.getTest().getTestIntegers();
}
private static class Test<T> {
public static Test getTest() {
return new Test();
}
public List<Integer> getTestIntegers() {
return Collections.singletonList(1);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个系统,其中A生成RSA密钥对并将公钥发送给B.然后生成AES密钥并使用公钥对其进行加密,将结果发送回A.然后解密AES密钥使用其RSA私钥,使用AES密钥加密数据并将其发送给B,然后B可以使用AES密钥对其进行解密.
我已经把这一切都在Android方面工作了,但是我不能让iPhone一起玩球(我是Objective C的新手,所以这可能就是为什么!)
最初,当使用RSA私钥解密AES密钥时,我收到错误9809,这无效转换为一般错误.研究错误指向填充(我正在使用PKCS1填充)是问题,切换到无填充允许iPhone客户端成功解密,但解密的AES密钥与Android客户端上生成的密钥不同.
目标C对我来说是一个新手,我确信我只是犯了一个小学生错误,有人能指出我正确的方向吗?
iPhone RSA密钥对生成
static const unsigned char _encodedRSAEncryptionOID[15] = {
/* Sequence of length 0xd made up of OID followed by NULL */
0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00
};
NSData * publicTag = [publicKeyIdentifier dataUsingEncoding:NSUTF8StringEncoding];
// Now lets extract the public key - build query to get bits
NSMutableDictionary * queryPublicKey = [[NSMutableDictionary alloc] init];
[queryPublicKey setObject:(__bridge id) kSecClassKey
forKey:(__bridge id) kSecClass];
[queryPublicKey setObject:publicTag
forKey:(__bridge id) …Run Code Online (Sandbox Code Playgroud)