当前位置: 首页>>代码示例>>Java>>正文


Java EncryptedPrivateKeyInfo.getEncoded方法代码示例

本文整理汇总了Java中sun.security.pkcs.EncryptedPrivateKeyInfo.getEncoded方法的典型用法代码示例。如果您正苦于以下问题:Java EncryptedPrivateKeyInfo.getEncoded方法的具体用法?Java EncryptedPrivateKeyInfo.getEncoded怎么用?Java EncryptedPrivateKeyInfo.getEncoded使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sun.security.pkcs.EncryptedPrivateKeyInfo的用法示例。


在下文中一共展示了EncryptedPrivateKeyInfo.getEncoded方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: engineSetKeyEntry

import sun.security.pkcs.EncryptedPrivateKeyInfo; //导入方法依赖的package包/类
/**
    * Assigns the given key (that has already been protected) to the given
 * alias.
 *
 * <p>If the protected key is of type
 * <code>java.security.PrivateKey</code>, it must be accompanied by a
 * certificate chain certifying the corresponding public key. If the
 * underlying keystore implementation is of type <code>jks</code>,
 * <code>key</code> must be encoded as an
 * <code>EncryptedPrivateKeyInfo</code> as defined in the PKCS #8 standard.
 *
 * <p>If the given alias already exists, the keystore information
 * associated with it is overridden by the given key (and possibly
                                                      * certificate chain).
 *
 * @param alias the alias name
 * @param key the key (in protected format) to be associated with the alias
 * @param chain the certificate chain for the corresponding public
 * key (only useful if the protected key is of type
        * <code>java.security.PrivateKey</code>).
 *
 * @exception KeyStoreException if this operation fails.
 */
public void engineSetKeyEntry(String alias, byte[] key,
                              Certificate[] chain)
    throws KeyStoreException
{
    permissionCheck();

    synchronized(entries) {
        // key must be encoded as EncryptedPrivateKeyInfo as defined in
        // PKCS#8
        KeyEntry entry = new KeyEntry();
        try {
            EncryptedPrivateKeyInfo privateKey = new EncryptedPrivateKeyInfo(key);
            entry.protectedPrivKey = privateKey.getEncoded();
        } catch (IOException ioe) {
            throw new KeyStoreException("key is not encoded as "
                                        + "EncryptedPrivateKeyInfo");
        }

        entry.date = new Date();

        if ((chain != null) &&
            (chain.length != 0)) {
            entry.chain = (Certificate[])chain.clone();
            entry.chainRefs = new long[entry.chain.length];
        }

        String lowerAlias = alias.toLowerCase();
        if (entries.get(lowerAlias) != null) {
            deletedEntries.put(lowerAlias, entries.get(alias));
        }
        entries.put(lowerAlias, entry);
        addedEntries.put(lowerAlias, entry);
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:58,代码来源:KeychainStore.java

示例2: encryptPrivateKey

import sun.security.pkcs.EncryptedPrivateKeyInfo; //导入方法依赖的package包/类
private byte[] encryptPrivateKey(byte[] data, char[] password)
    throws IOException, NoSuchAlgorithmException, UnrecoverableKeyException
{
    byte[] key = null;

    try {
        // create AlgorithmParameters
        AlgorithmParameters algParams =
        getAlgorithmParameters("PBEWithSHA1AndDESede");

        // Use JCE
        SecretKey skey = getPBEKey(password);
        Cipher cipher = Cipher.getInstance("PBEWithSHA1AndDESede");
        cipher.init(Cipher.ENCRYPT_MODE, skey, algParams);
        byte[] encryptedKey = cipher.doFinal(data);

        // wrap encrypted private key in EncryptedPrivateKeyInfo
        // as defined in PKCS#8
        AlgorithmId algid =
            new AlgorithmId(pbeWithSHAAnd3KeyTripleDESCBC_OID, algParams);
        EncryptedPrivateKeyInfo encrInfo =
            new EncryptedPrivateKeyInfo(algid, encryptedKey);
        key = encrInfo.getEncoded();
    } catch (Exception e) {
        UnrecoverableKeyException uke =
        new UnrecoverableKeyException("Encrypt Private Key failed: "
                                      + e.getMessage());
        uke.initCause(e);
        throw uke;
    }

    return ((byte[])key);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:34,代码来源:KeychainStore.java

示例3: engineSetKeyEntry

import sun.security.pkcs.EncryptedPrivateKeyInfo; //导入方法依赖的package包/类
/**
    * Assigns the given key (that has already been protected) to the given
 * alias.
 *
 * <p>If the protected key is of type
 * <code>java.security.PrivateKey</code>, it must be accompanied by a
 * certificate chain certifying the corresponding public key. If the
 * underlying keystore implementation is of type <code>jks</code>,
 * <code>key</code> must be encoded as an
 * <code>EncryptedPrivateKeyInfo</code> as defined in the PKCS #8 standard.
 *
 * <p>If the given alias already exists, the keystore information
 * associated with it is overridden by the given key (and possibly
                                                      * certificate chain).
 *
 * @param alias the alias name
 * @param key the key (in protected format) to be associated with the alias
 * @param chain the certificate chain for the corresponding public
 * key (only useful if the protected key is of type
        * <code>java.security.PrivateKey</code>).
 *
 * @exception KeyStoreException if this operation fails.
 */
public void engineSetKeyEntry(String alias, byte[] key,
                              Certificate[] chain)
    throws KeyStoreException
{
    permissionCheck();

    synchronized(entries) {
        // key must be encoded as EncryptedPrivateKeyInfo as defined in
        // PKCS#8
        KeyEntry entry = new KeyEntry();
        try {
            EncryptedPrivateKeyInfo privateKey = new EncryptedPrivateKeyInfo(key);
            entry.protectedPrivKey = privateKey.getEncoded();
        } catch (IOException ioe) {
            throw new KeyStoreException("key is not encoded as "
                                        + "EncryptedPrivateKeyInfo");
        }

        entry.date = new Date();

        if ((chain != null) &&
            (chain.length != 0)) {
            entry.chain = chain.clone();
            entry.chainRefs = new long[entry.chain.length];
        }

        String lowerAlias = alias.toLowerCase();
        if (entries.get(lowerAlias) != null) {
            deletedEntries.put(lowerAlias, entries.get(alias));
        }
        entries.put(lowerAlias, entry);
        addedEntries.put(lowerAlias, entry);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:58,代码来源:KeychainStore.java

示例4: encryptPrivateKey

import sun.security.pkcs.EncryptedPrivateKeyInfo; //导入方法依赖的package包/类
private byte[] encryptPrivateKey(byte[] data, char[] password)
    throws IOException, NoSuchAlgorithmException, UnrecoverableKeyException
{
    byte[] key = null;

    try {
        // create AlgorithmParameters
        AlgorithmParameters algParams =
        getAlgorithmParameters("PBEWithSHA1AndDESede");

        // Use JCE
        SecretKey skey = getPBEKey(password);
        Cipher cipher = Cipher.getInstance("PBEWithSHA1AndDESede");
        cipher.init(Cipher.ENCRYPT_MODE, skey, algParams);
        byte[] encryptedKey = cipher.doFinal(data);

        // wrap encrypted private key in EncryptedPrivateKeyInfo
        // as defined in PKCS#8
        AlgorithmId algid =
            new AlgorithmId(pbeWithSHAAnd3KeyTripleDESCBC_OID, algParams);
        EncryptedPrivateKeyInfo encrInfo =
            new EncryptedPrivateKeyInfo(algid, encryptedKey);
        key = encrInfo.getEncoded();
    } catch (Exception e) {
        UnrecoverableKeyException uke =
        new UnrecoverableKeyException("Encrypt Private Key failed: "
                                      + e.getMessage());
        uke.initCause(e);
        throw uke;
    }

    return key;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:34,代码来源:KeychainStore.java

示例5: encryptPrivateKey

import sun.security.pkcs.EncryptedPrivateKeyInfo; //导入方法依赖的package包/类
private byte[] encryptPrivateKey(byte[] data, char[] password)
    throws IOException, NoSuchAlgorithmException, UnrecoverableKeyException
{
    byte[] key = null;

    try {
        // create AlgorithmParameters
        AlgorithmParameters algParams =
            getAlgorithmParameters("PBEWithSHA1AndDESede");

        // Use JCE
        SecretKey skey = getPBEKey(password);
        Cipher cipher = Cipher.getInstance("PBEWithSHA1AndDESede");
        cipher.init(Cipher.ENCRYPT_MODE, skey, algParams);
        byte[] encryptedKey = cipher.doFinal(data);

        // wrap encrypted private key in EncryptedPrivateKeyInfo
        // as defined in PKCS#8
        AlgorithmId algid =
            new AlgorithmId(pbeWithSHAAnd3KeyTripleDESCBC_OID, algParams);
        EncryptedPrivateKeyInfo encrInfo =
            new EncryptedPrivateKeyInfo(algid, encryptedKey);
        key = encrInfo.getEncoded();
    } catch (Exception e) {
        UnrecoverableKeyException uke =
            new UnrecoverableKeyException("Encrypt Private Key failed: "
                                            + e.getMessage());
        uke.initCause(e);
        throw uke;
    }

    return key;
}
 
开发者ID:openjdk,项目名称:jdk7-jdk,代码行数:34,代码来源:PKCS12KeyStore.java

示例6: encryptPrivateKey

import sun.security.pkcs.EncryptedPrivateKeyInfo; //导入方法依赖的package包/类
private byte[] encryptPrivateKey(byte[] data,
    KeyStore.PasswordProtection passwordProtection)
    throws IOException, NoSuchAlgorithmException, UnrecoverableKeyException
{
    byte[] key = null;

    try {
        String algorithm;
        AlgorithmParameters algParams;
        AlgorithmId algid;

        // Initialize PBE algorithm and parameters
        algorithm = passwordProtection.getProtectionAlgorithm();
        if (algorithm != null) {
            AlgorithmParameterSpec algParamSpec =
                passwordProtection.getProtectionParameters();
            if (algParamSpec != null) {
                algParams = AlgorithmParameters.getInstance(algorithm);
                algParams.init(algParamSpec);
            } else {
                algParams = getAlgorithmParameters(algorithm);
            }
        } else {
            // Check default key protection algorithm for PKCS12 keystores
            algorithm = AccessController.doPrivileged(
                new PrivilegedAction<String>() {
                    public String run() {
                        String prop =
                            Security.getProperty(
                                KEY_PROTECTION_ALGORITHM[0]);
                        if (prop == null) {
                            prop = Security.getProperty(
                                KEY_PROTECTION_ALGORITHM[1]);
                        }
                        return prop;
                    }
                });
            if (algorithm == null || algorithm.isEmpty()) {
                algorithm = "PBEWithSHA1AndDESede";
            }
            algParams = getAlgorithmParameters(algorithm);
        }

        ObjectIdentifier pbeOID = mapPBEAlgorithmToOID(algorithm);
        if (pbeOID == null) {
                throw new IOException("PBE algorithm '" + algorithm +
                    " 'is not supported for key entry protection");
        }

        // Use JCE
        SecretKey skey = getPBEKey(passwordProtection.getPassword());
        Cipher cipher = Cipher.getInstance(algorithm);
        cipher.init(Cipher.ENCRYPT_MODE, skey, algParams);
        byte[] encryptedKey = cipher.doFinal(data);
        algid = new AlgorithmId(pbeOID, cipher.getParameters());

        if (debug != null) {
            debug.println("  (Cipher algorithm: " + cipher.getAlgorithm() +
                ")");
        }

        // wrap encrypted private key in EncryptedPrivateKeyInfo
        // as defined in PKCS#8
        EncryptedPrivateKeyInfo encrInfo =
            new EncryptedPrivateKeyInfo(algid, encryptedKey);
        key = encrInfo.getEncoded();
    } catch (Exception e) {
        UnrecoverableKeyException uke =
            new UnrecoverableKeyException("Encrypt Private Key failed: "
                                            + e.getMessage());
        uke.initCause(e);
        throw uke;
    }

    return key;
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:77,代码来源:PKCS12KeyStore.java

示例7: encryptPrivateKey

import sun.security.pkcs.EncryptedPrivateKeyInfo; //导入方法依赖的package包/类
private byte[] encryptPrivateKey(byte[] data,
    KeyStore.PasswordProtection passwordProtection)
    throws IOException, NoSuchAlgorithmException, UnrecoverableKeyException
{
    byte[] key = null;

    try {
        String algorithm;
        AlgorithmParameters algParams;
        AlgorithmId algid;

        // Initialize PBE algorithm and parameters
        algorithm = passwordProtection.getProtectionAlgorithm();
        if (algorithm != null) {
            AlgorithmParameterSpec algParamSpec =
                passwordProtection.getProtectionParameters();
            if (algParamSpec != null) {
                algParams = AlgorithmParameters.getInstance(algorithm);
                algParams.init(algParamSpec);
            } else {
                algParams = getPBEAlgorithmParameters(algorithm);
            }
        } else {
            // Check default key protection algorithm for PKCS12 keystores
            algorithm = AccessController.doPrivileged(
                new PrivilegedAction<String>() {
                    public String run() {
                        String prop =
                            Security.getProperty(
                                KEY_PROTECTION_ALGORITHM[0]);
                        if (prop == null) {
                            prop = Security.getProperty(
                                KEY_PROTECTION_ALGORITHM[1]);
                        }
                        return prop;
                    }
                });
            if (algorithm == null || algorithm.isEmpty()) {
                algorithm = "PBEWithSHA1AndDESede";
            }
            algParams = getPBEAlgorithmParameters(algorithm);
        }

        ObjectIdentifier pbeOID = mapPBEAlgorithmToOID(algorithm);
        if (pbeOID == null) {
                throw new IOException("PBE algorithm '" + algorithm +
                    " 'is not supported for key entry protection");
        }

        // Use JCE
        SecretKey skey = getPBEKey(passwordProtection.getPassword());
        Cipher cipher = Cipher.getInstance(algorithm);
        cipher.init(Cipher.ENCRYPT_MODE, skey, algParams);
        byte[] encryptedKey = cipher.doFinal(data);
        algid = new AlgorithmId(pbeOID, cipher.getParameters());

        if (debug != null) {
            debug.println("  (Cipher algorithm: " + cipher.getAlgorithm() +
                ")");
        }

        // wrap encrypted private key in EncryptedPrivateKeyInfo
        // as defined in PKCS#8
        EncryptedPrivateKeyInfo encrInfo =
            new EncryptedPrivateKeyInfo(algid, encryptedKey);
        key = encrInfo.getEncoded();
    } catch (Exception e) {
        UnrecoverableKeyException uke =
            new UnrecoverableKeyException("Encrypt Private Key failed: "
                                            + e.getMessage());
        uke.initCause(e);
        throw uke;
    }

    return key;
}
 
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:77,代码来源:PKCS12KeyStore.java


注:本文中的sun.security.pkcs.EncryptedPrivateKeyInfo.getEncoded方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。