Search in sources :

Example 1 with CertAndKeyGen

use of sun.security.x509.CertAndKeyGen in project otertool by wuntee.

the class SmaliWorkshop method createKeystoreWithSecretKey.

public static KeyStore createKeystoreWithSecretKey(String alias) throws KeyStoreException, NoSuchAlgorithmException, NoSuchProviderException, CertificateException, IOException, InvalidKeyException, SignatureException {
    KeyStore ret = KeyStore.getInstance(KeyStore.getDefaultType());
    ret.load(null);
    int keysize = 1024;
    int validity = 10000;
    String keyAlgName = "RSA";
    String sigAlgName = "SHA1WithRSA";
    CertAndKeyGen keypair = new CertAndKeyGen(keyAlgName, sigAlgName, null);
    X500Name x500Name = new X500Name(OterStatics.SOME_STRING, OterStatics.SOME_STRING, OterStatics.SOME_STRING, OterStatics.SOME_STRING, OterStatics.SOME_STRING, OterStatics.SOME_STRING);
    keypair.generate(keysize);
    PrivateKey privKey = keypair.getPrivateKey();
    X509Certificate[] chain = new X509Certificate[1];
    chain[0] = keypair.getSelfCertificate(x500Name, (long) validity * 24 * 60 * 60);
    ret.setKeyEntry(alias, privKey, OterStatics.SOME_STRING.toCharArray(), chain);
    return (ret);
}
Also used : PrivateKey(java.security.PrivateKey) CertAndKeyGen(sun.security.x509.CertAndKeyGen) X500Name(sun.security.x509.X500Name) KeyStore(java.security.KeyStore) X509Certificate(java.security.cert.X509Certificate)

Example 2 with CertAndKeyGen

use of sun.security.x509.CertAndKeyGen in project jdk8u_jdk by JetBrains.

the class SmallPrimeExponentP method main.

public static void main(String[] argv) throws Exception {
    String osName = System.getProperty("os.name");
    if (!osName.startsWith("Windows")) {
        System.out.println("Not windows");
        return;
    }
    KeyStore ks = KeyStore.getInstance("Windows-MY");
    ks.load(null, null);
    CertAndKeyGen ckg = new CertAndKeyGen("RSA", "SHA1withRSA");
    ckg.setRandom(new SecureRandom());
    boolean see63 = false, see65 = false;
    while (!see63 || !see65) {
        ckg.generate(1024);
        RSAPrivateCrtKey k = (RSAPrivateCrtKey) ckg.getPrivateKey();
        int len = k.getPrimeExponentP().toByteArray().length;
        if (len == 63 || len == 65) {
            if (len == 63) {
                if (see63)
                    continue;
                else
                    see63 = true;
            }
            if (len == 65) {
                if (see65)
                    continue;
                else
                    see65 = true;
            }
            System.err.print(len);
            ks.setKeyEntry("anything", k, null, new X509Certificate[] { ckg.getSelfCertificate(new X500Name("CN=Me"), 1000) });
        }
        System.err.print('.');
    }
    ks.store(null, null);
}
Also used : RSAPrivateCrtKey(java.security.interfaces.RSAPrivateCrtKey) CertAndKeyGen(sun.security.tools.keytool.CertAndKeyGen) SecureRandom(java.security.SecureRandom) X500Name(sun.security.x509.X500Name) KeyStore(java.security.KeyStore)

Example 3 with CertAndKeyGen

use of sun.security.x509.CertAndKeyGen in project jdk8u_jdk by JetBrains.

the class NonStandardNames method main.

public static void main(String[] args) throws Exception {
    byte[] data = "Hello".getBytes();
    X500Name n = new X500Name("cn=Me");
    CertAndKeyGen cakg = new CertAndKeyGen("RSA", "SHA256withRSA");
    cakg.generate(1024);
    X509Certificate cert = cakg.getSelfCertificate(n, 1000);
    MessageDigest md = MessageDigest.getInstance("SHA-256");
    PKCS9Attributes authed = new PKCS9Attributes(new PKCS9Attribute[] { new PKCS9Attribute(PKCS9Attribute.CONTENT_TYPE_OID, ContentInfo.DATA_OID), new PKCS9Attribute(PKCS9Attribute.MESSAGE_DIGEST_OID, md.digest(data)) });
    Signature s = Signature.getInstance("SHA256withRSA");
    s.initSign(cakg.getPrivateKey());
    s.update(authed.getDerEncoding());
    byte[] sig = s.sign();
    SignerInfo signerInfo = new SignerInfo(n, cert.getSerialNumber(), AlgorithmId.get("SHA-256"), authed, AlgorithmId.get("SHA256withRSA"), sig, null);
    PKCS7 pkcs7 = new PKCS7(new AlgorithmId[] { signerInfo.getDigestAlgorithmId() }, new ContentInfo(data), new X509Certificate[] { cert }, new SignerInfo[] { signerInfo });
    if (pkcs7.verify(signerInfo, data) == null) {
        throw new Exception("Not verified");
    }
}
Also used : SignerInfo(sun.security.pkcs.SignerInfo) PKCS9Attribute(sun.security.pkcs.PKCS9Attribute) ContentInfo(sun.security.pkcs.ContentInfo) PKCS7(sun.security.pkcs.PKCS7) CertAndKeyGen(sun.security.tools.keytool.CertAndKeyGen) Signature(java.security.Signature) X500Name(sun.security.x509.X500Name) MessageDigest(java.security.MessageDigest) PKCS9Attributes(sun.security.pkcs.PKCS9Attributes) X509Certificate(java.security.cert.X509Certificate)

Aggregations

X500Name (sun.security.x509.X500Name)3 KeyStore (java.security.KeyStore)2 X509Certificate (java.security.cert.X509Certificate)2 CertAndKeyGen (sun.security.tools.keytool.CertAndKeyGen)2 MessageDigest (java.security.MessageDigest)1 PrivateKey (java.security.PrivateKey)1 SecureRandom (java.security.SecureRandom)1 Signature (java.security.Signature)1 RSAPrivateCrtKey (java.security.interfaces.RSAPrivateCrtKey)1 ContentInfo (sun.security.pkcs.ContentInfo)1 PKCS7 (sun.security.pkcs.PKCS7)1 PKCS9Attribute (sun.security.pkcs.PKCS9Attribute)1 PKCS9Attributes (sun.security.pkcs.PKCS9Attributes)1 SignerInfo (sun.security.pkcs.SignerInfo)1 CertAndKeyGen (sun.security.x509.CertAndKeyGen)1