Tôi đang tạo cặp khóa trên nền tảng bằng cách sử dụng gói Bouncy Castle.Cách lấy PublicKey từ AsymmetricCipherKeyPair, không phải tham số publickeycipher?
SecureRandom random = new SecureRandom();
ECKeyPairGenerator pGen = new ECKeyPairGenerator();
ECKeyGenerationParameters genParam = new ECKeyGenerationParameters(params,random);
pGen.init(genParam);
AsymmetricCipherKeyPair pair = pGen.generateKeyPair();
Ở đây, pair
thuộc loại AsymmetricCipherKeyPair
. Và, tôi cần phải tạo ra một X509V1Certificate tại máy chủ bằng cách sử dụng cặp này. Nhưng, X509Certificate's setPublicKey(PublicKey pubkey)
chỉ chấp nhận các đối tượng thuộc loại PublicKey
. Vì vậy, tôi cần truy xuất số PublicKey
từ số AsymmetricCipherKeyPair
tại máy chủ. Nhưng, tôi nhận được ECPublicKeyParameters
, không được chấp nhận theo phương thức setPublicKey
.
Vì vậy, yêu cầu của tôi ở đây là lấy số PublicKey
từ số AsymmetricCipherKeyPair
.
Nếu bạn đang ở trong Java Môi trường ME thì bạn không có java.se curity.PublicKey hoặc java.security.cert. –
Cảm ơn bạn đã trả lời .. Tôi đang gửi khóa công khai của ứng dụng khách j2me đến máy chủ để nhận chứng chỉ ứng dụng khách. Máy chủ nhận khóa công khai nhưng khi tạo X509Certificate, không thể đặtPublicKey() bằng khóa công khai đã nhận. Vì đã nhận được khóa công khai của loại ECPublicKeyparameters. Vì vậy, tôi muốn thay đổi loại khóa công khai này thành PublicKey tại máy chủ. Vui lòng đề cập đến các đề xuất. Cảm ơn bạn trước. –
Vậy làm cách nào để bạn gửi khóa từ máy khách j2me đến máy chủ? Bạn đã tuần tự hóa hoặc mã hóa nó theo một cách nào đó? –