나는 HSM에 의해 생성 된 RSA 공개 키 (2048 비트)를 갖고 있는데,이 키는 파일 (256 바이트 크기)에 저장되어 DER로 인코딩되어있다.프로그래밍 방식으로 자체 서명 된 인증서를 생성하는 방법?
BirthcyCastle이없는 JDK API를 사용하여 프로그래밍 방식으로 자체 서명 된 인증서를 만들 수 있습니까? 나는 한 PublicKey 객체 생성 키 파일을로드하는 것을 시도하고 있기 때문에
나는 첫 번째 단계와 붙어있어 :
import java.io.FileInputStream;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import org.apache.commons.io.IOUtils;
public class Crypto {
public static void main(String[] args) throws Exception {
byte[] byteArray = IOUtils.toByteArray(new FileInputStream("/tmp/pub.key"));
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(byteArray);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey pub = kf.generatePublic(spec);
....
}
}
을하지만 난이 예외가 얻을 :
Exception in thread "main" java.security.spec.InvalidKeySpecException: Only RSAPublicKeySpec and X509EncodedKeySpec supported for RSA public keys
at sun.security.rsa.RSAKeyFactory.generatePublic(RSAKeyFactory.java:289)
at sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:184)
at java.security.KeyFactory.generatePublic(KeyFactory.java:304)
at org.alex.Crypto.main(Crypto.java:17)
인가를 그걸 할 방법이 있니?
링크가 도움이 될 수 있습니다 : http://stackoverflow.com/questions/19512088/how-to-generate-apk-file-programmatically-through-java-code –