似乎
公钥的预期使用信息存储在数据包中,如GnuPG packet.h所示。
PGPPublicKey
类提供了一个isEncryptionKey()
方法,用于确定公钥算法是否可用于加密目的(RSA_GENERAL
, RSA_ENCRYPT
, ELGAMAL_GENERAL
, ELGAMAL_ENCRYPT
),但仅此还不足以选择有效的加密子密钥。公钥的预期使用信息存储在数据包中,如GnuPG packet.h所示。
41 /* Usage flags */
42 #define PUBKEY_USAGE_SIG GCRY_PK_USAGE_SIGN /* Good for signatures. */
43 #define PUBKEY_USAGE_ENC GCRY_PK_USAGE_ENCR /* Good for encryption. */
44 #define PUBKEY_USAGE_CERT GCRY_PK_USAGE_CERT /* Also good to certify keys.*/
45 #define PUBKEY_USAGE_AUTH GCRY_PK_USAGE_AUTH /* Good for authentication. */
46 #define PUBKEY_USAGE_UNKNOWN GCRY_PK_USAGE_UNKN /* Unknown usage flag. */
47 #define PUBKEY_USAGE_NONE 256 /* No usage given. */
我的问题是,考虑到Bouncy Castle没有暴露这些标志,从Java中的PublicKeyPacket中提取此键用法信息的建议方法是什么?