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


Java ParameterCache类代码示例

本文整理汇总了Java中sun.security.provider.ParameterCache的典型用法代码示例。如果您正苦于以下问题:Java ParameterCache类的具体用法?Java ParameterCache怎么用?Java ParameterCache使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: initialize

import sun.security.provider.ParameterCache; //导入依赖的package包/类
/**
 * Initializes this key pair generator for a certain keysize and source of
 * randomness.
 * The keysize is specified as the size in bits of the prime modulus.
 *
 * @param keysize the keysize (size of prime modulus) in bits
 * @param random the source of randomness
 */
public void initialize(int keysize, SecureRandom random) {
    checkKeySize(keysize);

    // Use the built-in parameters (ranging from 512 to 8192)
    // when available.
    this.params = ParameterCache.getCachedDHParameterSpec(keysize);

    // Due to performance issue, only support DH parameters generation
    // up to 1024 bits.
    if ((this.params == null) && (keysize > 1024)) {
        throw new InvalidParameterException(
            "Unsupported " + keysize + "-bit DH parameter generation");
    }

    this.pSize = keysize;
    this.lSize = 0;
    this.random = random;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:27,代码来源:DHKeyPairGenerator.java

示例2: generateKeyPair

import sun.security.provider.ParameterCache; //导入依赖的package包/类
/**
 * Generates a key pair.
 *
 * @return the new key pair
 */
public KeyPair generateKeyPair() {
    if (random == null) {
        random = SunJCE.getRandom();
    }

    if (params == null) {
        try {
            params = ParameterCache.getDHParameterSpec(pSize, random);
        } catch (GeneralSecurityException e) {
            // should never happen
            throw new ProviderException(e);
        }
    }

    BigInteger p = params.getP();
    BigInteger g = params.getG();

    if (lSize <= 0) {
        lSize = pSize >> 1;
        // use an exponent size of (pSize / 2) but at least 384 bits
        if (lSize < 384) {
            lSize = 384;
        }
    }

    BigInteger x;
    BigInteger pMinus2 = p.subtract(BigInteger.TWO);

    //
    // PKCS#3 section 7.1 "Private-value generation"
    // Repeat if either of the followings does not hold:
    //     0 < x < p-1
    //     2^(lSize-1) <= x < 2^(lSize)
    //
    do {
        // generate random x up to 2^lSize bits long
        x = new BigInteger(lSize, random);
    } while ((x.compareTo(BigInteger.ONE) < 0) ||
        ((x.compareTo(pMinus2) > 0)) || (x.bitLength() != lSize));

    // calculate public value y
    BigInteger y = g.modPow(x, p);

    DHPublicKey pubKey = new DHPublicKey(y, p, g, lSize);
    DHPrivateKey privKey = new DHPrivateKey(x, p, g, lSize);
    return new KeyPair(pubKey, privKey);
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:53,代码来源:DHKeyPairGenerator.java

示例3: generateKeyPair

import sun.security.provider.ParameterCache; //导入依赖的package包/类
/**
 * Generates a key pair.
 *
 * @return the new key pair
 */
public KeyPair generateKeyPair() {
    if (random == null) {
        random = SunJCE.getRandom();
    }

    if (params == null) {
        try {
            params = ParameterCache.getDHParameterSpec(pSize, random);
        } catch (GeneralSecurityException e) {
            // should never happen
            throw new ProviderException(e);
        }
    }

    BigInteger p = params.getP();
    BigInteger g = params.getG();

    if (lSize <= 0) {
        lSize = pSize >> 1;
        // use an exponent size of (pSize / 2) but at least 384 bits
        if (lSize < 384) {
            lSize = 384;
        }
    }

    BigInteger x;
    BigInteger pMinus2 = p.subtract(BigInteger.valueOf(2));

    //
    // PKCS#3 section 7.1 "Private-value generation"
    // Repeat if either of the followings does not hold:
    //     0 < x < p-1
    //     2^(lSize-1) <= x < 2^(lSize)
    //
    do {
        // generate random x up to 2^lSize bits long
        x = new BigInteger(lSize, random);
    } while ((x.compareTo(BigInteger.ONE) < 0) ||
        ((x.compareTo(pMinus2) > 0)) || (x.bitLength() != lSize));

    // calculate public value y
    BigInteger y = g.modPow(x, p);

    DHPublicKey pubKey = new DHPublicKey(y, p, g, lSize);
    DHPrivateKey privKey = new DHPrivateKey(x, p, g, lSize);
    return new KeyPair(pubKey, privKey);
}
 
开发者ID:JetBrains,项目名称:jdk8u_jdk,代码行数:53,代码来源:DHKeyPairGenerator.java

示例4: generateKeyPair

import sun.security.provider.ParameterCache; //导入依赖的package包/类
/**
 * Generates a key pair.
 *
 * @return the new key pair
 */
public KeyPair generateKeyPair() {
    if (random == null) {
        random = SunJCE.RANDOM;
    }

    if (params == null) {
        try {
            params = ParameterCache.getDHParameterSpec(pSize, random);
        } catch (GeneralSecurityException e) {
            // should never happen
            throw new ProviderException(e);
        }
    }

    BigInteger p = params.getP();
    BigInteger g = params.getG();

    if (lSize <= 0) {
        // use an exponent size of (pSize / 2) but at least 384 bits
        lSize = Math.max(384, pSize >> 1);
        // if lSize is larger than pSize, limit by pSize
        lSize = Math.min(lSize, pSize);
    }

    BigInteger x;
    BigInteger pMinus2 = p.subtract(BigInteger.valueOf(2));

    //
    // Handbook of Applied Cryptography:  Menezes, et.al.
    // Repeat if the following does not hold:
    //     1 <= x <= p-2
    //
    do {
        // generate random x up to 2^lSize bits long
        x = new BigInteger(lSize, random);
    } while ((x.compareTo(BigInteger.ONE) < 0) ||
        ((x.compareTo(pMinus2) > 0)));

    // calculate public value y
    BigInteger y = g.modPow(x, p);

    DHPublicKey pubKey = new DHPublicKey(y, p, g, lSize);
    DHPrivateKey privKey = new DHPrivateKey(x, p, g, lSize);
    return new KeyPair(pubKey, privKey);
}
 
开发者ID:openjdk,项目名称:jdk7-jdk,代码行数:51,代码来源:DHKeyPairGenerator.java


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