javax.crypto.spec.PSource#getAlgorithm ( )源码实例Demo

下面列出了javax.crypto.spec.PSource#getAlgorithm ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: jdk8u-jdk   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码2 项目: jdk8u-jdk   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码3 项目: TencentKona-8   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码4 项目: TencentKona-8   文件: TestOAEPParameterSpec.java
private static boolean comparePSource(OAEPParameterSpec s1,
    OAEPParameterSpec s2) {
    PSource src1 = s1.getPSource();
    PSource src2 = s2.getPSource();
    String alg1 = src1.getAlgorithm();
    String alg2 = src2.getAlgorithm();
    if (alg1.equals(alg2)) {
        // assumes they are PSource.PSpecified
        return Arrays.equals(((PSource.PSpecified) src1).getValue(),
            ((PSource.PSpecified) src2).getValue());
    } else {
        System.out.println("PSource algos: " + alg1 + " vs " + alg2);
        return false;
    }
}
 
源代码5 项目: jdk8u_jdk   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码6 项目: jdk8u-dev-jdk   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码7 项目: openjdk-8   文件: TestOAEPParameterSpec.java
private static boolean comparePSource(OAEPParameterSpec s1,
    OAEPParameterSpec s2) {
    PSource src1 = s1.getPSource();
    PSource src2 = s2.getPSource();
    String alg1 = src1.getAlgorithm();
    String alg2 = src2.getAlgorithm();
    if (alg1.equals(alg2)) {
        // assumes they are PSource.PSpecified
        return Arrays.equals(((PSource.PSpecified) src1).getValue(),
            ((PSource.PSpecified) src2).getValue());
    } else {
        System.out.println("PSource algos: " + alg1 + " vs " + alg2);
        return false;
    }
}
 
源代码8 项目: openjdk-8   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码9 项目: openjdk-jdk8u-backup   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码10 项目: Bytecoder   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码11 项目: hottub   文件: OAEPParameters.java
protected void engineInit(AlgorithmParameterSpec paramSpec)
    throws InvalidParameterSpecException {
    if (!(paramSpec instanceof OAEPParameterSpec)) {
        throw new InvalidParameterSpecException
            ("Inappropriate parameter specification");
    }
    OAEPParameterSpec spec = (OAEPParameterSpec) paramSpec;
    mdName = spec.getDigestAlgorithm();
    String mgfName = spec.getMGFAlgorithm();
    if (!mgfName.equalsIgnoreCase("MGF1")) {
        throw new InvalidParameterSpecException("Unsupported mgf " +
            mgfName + "; MGF1 only");
    }
    AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
    if (!(mgfSpec instanceof MGF1ParameterSpec)) {
        throw new InvalidParameterSpecException("Inappropriate mgf " +
            "parameters; non-null MGF1ParameterSpec only");
    }
    this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
    PSource pSrc = spec.getPSource();
    if (pSrc.getAlgorithm().equals("PSpecified")) {
        p = ((PSource.PSpecified) pSrc).getValue();
    } else {
        throw new InvalidParameterSpecException("Unsupported pSource " +
            pSrc.getAlgorithm() + "; PSpecified only");
    }
}
 
源代码12 项目: openjdk-jdk9   文件: TestOAEPParameterSpec.java
private static boolean comparePSource(OAEPParameterSpec s1,
    OAEPParameterSpec s2) {
    PSource src1 = s1.getPSource();
    PSource src2 = s2.getPSource();
    String alg1 = src1.getAlgorithm();
    String alg2 = src2.getAlgorithm();
    if (alg1.equals(alg2)) {
        // assumes they are PSource.PSpecified
        return Arrays.equals(((PSource.PSpecified) src1).getValue(),
            ((PSource.PSpecified) src2).getValue());
    } else {
        System.out.println("PSource algos: " + alg1 + " vs " + alg2);
        return false;
    }
}
 
源代码13 项目: openjdk-8   文件: RSAPadding.java
private RSAPadding(int type, int paddedSize, SecureRandom random,
        OAEPParameterSpec spec) throws InvalidKeyException,
        InvalidAlgorithmParameterException {
    this.type = type;
    this.paddedSize = paddedSize;
    this.random = random;
    if (paddedSize < 64) {
        // sanity check, already verified in RSASignature/RSACipher
        throw new InvalidKeyException("Padded size must be at least 64");
    }
    switch (type) {
    case PAD_BLOCKTYPE_1:
    case PAD_BLOCKTYPE_2:
        maxDataSize = paddedSize - 11;
        break;
    case PAD_NONE:
        maxDataSize = paddedSize;
        break;
    case PAD_OAEP_MGF1:
        String mdName = "SHA-1";
        String mgfMdName = "SHA-1";
        byte[] digestInput = null;
        try {
            if (spec != null) {
                mdName = spec.getDigestAlgorithm();
                String mgfName = spec.getMGFAlgorithm();
                if (!mgfName.equalsIgnoreCase("MGF1")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported MGF algo: " + mgfName);
                }
                mgfMdName = ((MGF1ParameterSpec)spec.getMGFParameters()).getDigestAlgorithm();
                PSource pSrc = spec.getPSource();
                String pSrcAlgo = pSrc.getAlgorithm();
                if (!pSrcAlgo.equalsIgnoreCase("PSpecified")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported pSource algo: " + pSrcAlgo);
                }
                digestInput = ((PSource.PSpecified) pSrc).getValue();
            }
            md = MessageDigest.getInstance(mdName);
            mgfMd = MessageDigest.getInstance(mgfMdName);
        } catch (NoSuchAlgorithmException e) {
            throw new InvalidKeyException
                    ("Digest " + mdName + " not available", e);
        }
        lHash = getInitialHash(md, digestInput);
        int digestLen = lHash.length;
        maxDataSize = paddedSize - 2 - 2 * digestLen;
        if (maxDataSize <= 0) {
            throw new InvalidKeyException
                    ("Key is too short for encryption using OAEPPadding" +
                     " with " + mdName + " and MGF1" + mgfMdName);
        }
        break;
    default:
        throw new InvalidKeyException("Invalid padding: " + type);
    }
}
 
源代码14 项目: jdk8u-dev-jdk   文件: RSAPadding.java
private RSAPadding(int type, int paddedSize, SecureRandom random,
        OAEPParameterSpec spec) throws InvalidKeyException,
        InvalidAlgorithmParameterException {
    this.type = type;
    this.paddedSize = paddedSize;
    this.random = random;
    if (paddedSize < 64) {
        // sanity check, already verified in RSASignature/RSACipher
        throw new InvalidKeyException("Padded size must be at least 64");
    }
    switch (type) {
    case PAD_BLOCKTYPE_1:
    case PAD_BLOCKTYPE_2:
        maxDataSize = paddedSize - 11;
        break;
    case PAD_NONE:
        maxDataSize = paddedSize;
        break;
    case PAD_OAEP_MGF1:
        String mdName = "SHA-1";
        String mgfMdName = "SHA-1";
        byte[] digestInput = null;
        try {
            if (spec != null) {
                mdName = spec.getDigestAlgorithm();
                String mgfName = spec.getMGFAlgorithm();
                if (!mgfName.equalsIgnoreCase("MGF1")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported MGF algo: " + mgfName);
                }
                mgfMdName = ((MGF1ParameterSpec)spec.getMGFParameters())
                        .getDigestAlgorithm();
                PSource pSrc = spec.getPSource();
                String pSrcAlgo = pSrc.getAlgorithm();
                if (!pSrcAlgo.equalsIgnoreCase("PSpecified")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported pSource algo: " + pSrcAlgo);
                }
                digestInput = ((PSource.PSpecified) pSrc).getValue();
            }
            md = MessageDigest.getInstance(mdName);
            mgfMd = MessageDigest.getInstance(mgfMdName);
        } catch (NoSuchAlgorithmException e) {
            throw new InvalidKeyException
                    ("Digest " + mdName + " not available", e);
        }
        lHash = getInitialHash(md, digestInput);
        int digestLen = lHash.length;
        maxDataSize = paddedSize - 2 - 2 * digestLen;
        if (maxDataSize <= 0) {
            throw new InvalidKeyException
                    ("Key is too short for encryption using OAEPPadding" +
                     " with " + mdName + " and MGF1" + mgfMdName);
        }
        break;
    default:
        throw new InvalidKeyException("Invalid padding: " + type);
    }
}
 
源代码15 项目: jdk8u-jdk   文件: RSAPadding.java
private RSAPadding(int type, int paddedSize, SecureRandom random,
        OAEPParameterSpec spec) throws InvalidKeyException,
        InvalidAlgorithmParameterException {
    this.type = type;
    this.paddedSize = paddedSize;
    this.random = random;
    if (paddedSize < 64) {
        // sanity check, already verified in RSASignature/RSACipher
        throw new InvalidKeyException("Padded size must be at least 64");
    }
    switch (type) {
    case PAD_BLOCKTYPE_1:
    case PAD_BLOCKTYPE_2:
        maxDataSize = paddedSize - 11;
        break;
    case PAD_NONE:
        maxDataSize = paddedSize;
        break;
    case PAD_OAEP_MGF1:
        String mdName = "SHA-1";
        String mgfMdName = "SHA-1";
        byte[] digestInput = null;
        try {
            if (spec != null) {
                mdName = spec.getDigestAlgorithm();
                String mgfName = spec.getMGFAlgorithm();
                if (!mgfName.equalsIgnoreCase("MGF1")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported MGF algo: " + mgfName);
                }
                mgfMdName = ((MGF1ParameterSpec)spec.getMGFParameters())
                        .getDigestAlgorithm();
                PSource pSrc = spec.getPSource();
                String pSrcAlgo = pSrc.getAlgorithm();
                if (!pSrcAlgo.equalsIgnoreCase("PSpecified")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported pSource algo: " + pSrcAlgo);
                }
                digestInput = ((PSource.PSpecified) pSrc).getValue();
            }
            md = MessageDigest.getInstance(mdName);
            mgfMd = MessageDigest.getInstance(mgfMdName);
        } catch (NoSuchAlgorithmException e) {
            throw new InvalidKeyException
                    ("Digest " + mdName + " not available", e);
        }
        lHash = getInitialHash(md, digestInput);
        int digestLen = lHash.length;
        maxDataSize = paddedSize - 2 - 2 * digestLen;
        if (maxDataSize <= 0) {
            throw new InvalidKeyException
                    ("Key is too short for encryption using OAEPPadding" +
                     " with " + mdName + " and MGF1" + mgfMdName);
        }
        break;
    default:
        throw new InvalidKeyException("Invalid padding: " + type);
    }
}
 
源代码16 项目: openjdk-jdk8u   文件: RSAPadding.java
private RSAPadding(int type, int paddedSize, SecureRandom random,
        OAEPParameterSpec spec) throws InvalidKeyException,
        InvalidAlgorithmParameterException {
    this.type = type;
    this.paddedSize = paddedSize;
    this.random = random;
    if (paddedSize < 64) {
        // sanity check, already verified in RSASignature/RSACipher
        throw new InvalidKeyException("Padded size must be at least 64");
    }
    switch (type) {
    case PAD_BLOCKTYPE_1:
    case PAD_BLOCKTYPE_2:
        maxDataSize = paddedSize - 11;
        break;
    case PAD_NONE:
        maxDataSize = paddedSize;
        break;
    case PAD_OAEP_MGF1:
        String mdName = "SHA-1";
        String mgfMdName = mdName;
        byte[] digestInput = null;
        try {
            if (spec != null) {
                mdName = spec.getDigestAlgorithm();
                String mgfName = spec.getMGFAlgorithm();
                if (!mgfName.equalsIgnoreCase("MGF1")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported MGF algo: " + mgfName);
                }
                mgfMdName = ((MGF1ParameterSpec)spec.getMGFParameters())
                        .getDigestAlgorithm();
                PSource pSrc = spec.getPSource();
                String pSrcAlgo = pSrc.getAlgorithm();
                if (!pSrcAlgo.equalsIgnoreCase("PSpecified")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported pSource algo: " + pSrcAlgo);
                }
                digestInput = ((PSource.PSpecified) pSrc).getValue();
            }
            md = MessageDigest.getInstance(mdName);
            mgf = new MGF1(mgfMdName);
        } catch (NoSuchAlgorithmException e) {
            throw new InvalidKeyException("Digest not available", e);
        }
        lHash = getInitialHash(md, digestInput);
        int digestLen = lHash.length;
        maxDataSize = paddedSize - 2 - 2 * digestLen;
        if (maxDataSize <= 0) {
            throw new InvalidKeyException
                    ("Key is too short for encryption using OAEPPadding" +
                     " with " + mdName + " and " + mgf.getName());
        }
        break;
    default:
        throw new InvalidKeyException("Invalid padding: " + type);
    }
}
 
源代码17 项目: openjdk-jdk8u-backup   文件: RSAPadding.java
private RSAPadding(int type, int paddedSize, SecureRandom random,
        OAEPParameterSpec spec) throws InvalidKeyException,
        InvalidAlgorithmParameterException {
    this.type = type;
    this.paddedSize = paddedSize;
    this.random = random;
    if (paddedSize < 64) {
        // sanity check, already verified in RSASignature/RSACipher
        throw new InvalidKeyException("Padded size must be at least 64");
    }
    switch (type) {
    case PAD_BLOCKTYPE_1:
    case PAD_BLOCKTYPE_2:
        maxDataSize = paddedSize - 11;
        break;
    case PAD_NONE:
        maxDataSize = paddedSize;
        break;
    case PAD_OAEP_MGF1:
        String mdName = "SHA-1";
        String mgfMdName = "SHA-1";
        byte[] digestInput = null;
        try {
            if (spec != null) {
                mdName = spec.getDigestAlgorithm();
                String mgfName = spec.getMGFAlgorithm();
                if (!mgfName.equalsIgnoreCase("MGF1")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported MGF algo: " + mgfName);
                }
                mgfMdName = ((MGF1ParameterSpec)spec.getMGFParameters())
                        .getDigestAlgorithm();
                PSource pSrc = spec.getPSource();
                String pSrcAlgo = pSrc.getAlgorithm();
                if (!pSrcAlgo.equalsIgnoreCase("PSpecified")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported pSource algo: " + pSrcAlgo);
                }
                digestInput = ((PSource.PSpecified) pSrc).getValue();
            }
            md = MessageDigest.getInstance(mdName);
            mgfMd = MessageDigest.getInstance(mgfMdName);
        } catch (NoSuchAlgorithmException e) {
            throw new InvalidKeyException
                    ("Digest " + mdName + " not available", e);
        }
        lHash = getInitialHash(md, digestInput);
        int digestLen = lHash.length;
        maxDataSize = paddedSize - 2 - 2 * digestLen;
        if (maxDataSize <= 0) {
            throw new InvalidKeyException
                    ("Key is too short for encryption using OAEPPadding" +
                     " with " + mdName + " and MGF1" + mgfMdName);
        }
        break;
    default:
        throw new InvalidKeyException("Invalid padding: " + type);
    }
}
 
源代码18 项目: jdk8u_jdk   文件: RSAPadding.java
private RSAPadding(int type, int paddedSize, SecureRandom random,
        OAEPParameterSpec spec) throws InvalidKeyException,
        InvalidAlgorithmParameterException {
    this.type = type;
    this.paddedSize = paddedSize;
    this.random = random;
    if (paddedSize < 64) {
        // sanity check, already verified in RSASignature/RSACipher
        throw new InvalidKeyException("Padded size must be at least 64");
    }
    switch (type) {
    case PAD_BLOCKTYPE_1:
    case PAD_BLOCKTYPE_2:
        maxDataSize = paddedSize - 11;
        break;
    case PAD_NONE:
        maxDataSize = paddedSize;
        break;
    case PAD_OAEP_MGF1:
        String mdName = "SHA-1";
        String mgfMdName = mdName;
        byte[] digestInput = null;
        try {
            if (spec != null) {
                mdName = spec.getDigestAlgorithm();
                String mgfName = spec.getMGFAlgorithm();
                if (!mgfName.equalsIgnoreCase("MGF1")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported MGF algo: " + mgfName);
                }
                mgfMdName = ((MGF1ParameterSpec)spec.getMGFParameters())
                        .getDigestAlgorithm();
                PSource pSrc = spec.getPSource();
                String pSrcAlgo = pSrc.getAlgorithm();
                if (!pSrcAlgo.equalsIgnoreCase("PSpecified")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported pSource algo: " + pSrcAlgo);
                }
                digestInput = ((PSource.PSpecified) pSrc).getValue();
            }
            md = MessageDigest.getInstance(mdName);
            mgf = new MGF1(mgfMdName);
        } catch (NoSuchAlgorithmException e) {
            throw new InvalidKeyException("Digest not available", e);
        }
        lHash = getInitialHash(md, digestInput);
        int digestLen = lHash.length;
        maxDataSize = paddedSize - 2 - 2 * digestLen;
        if (maxDataSize <= 0) {
            throw new InvalidKeyException
                    ("Key is too short for encryption using OAEPPadding" +
                     " with " + mdName + " and " + mgf.getName());
        }
        break;
    default:
        throw new InvalidKeyException("Invalid padding: " + type);
    }
}
 
源代码19 项目: Bytecoder   文件: RSAPadding.java
private RSAPadding(int type, int paddedSize, SecureRandom random,
        OAEPParameterSpec spec) throws InvalidKeyException,
        InvalidAlgorithmParameterException {
    this.type = type;
    this.paddedSize = paddedSize;
    this.random = random;
    if (paddedSize < 64) {
        // sanity check, already verified in RSASignature/RSACipher
        throw new InvalidKeyException("Padded size must be at least 64");
    }
    switch (type) {
    case PAD_BLOCKTYPE_1:
    case PAD_BLOCKTYPE_2:
        maxDataSize = paddedSize - 11;
        break;
    case PAD_NONE:
        maxDataSize = paddedSize;
        break;
    case PAD_OAEP_MGF1:
        String mdName = "SHA-1";
        String mgfMdName = mdName;
        byte[] digestInput = null;
        try {
            if (spec != null) {
                mdName = spec.getDigestAlgorithm();
                String mgfName = spec.getMGFAlgorithm();
                if (!mgfName.equalsIgnoreCase("MGF1")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported MGF algo: " + mgfName);
                }
                mgfMdName = ((MGF1ParameterSpec)spec.getMGFParameters())
                        .getDigestAlgorithm();
                PSource pSrc = spec.getPSource();
                String pSrcAlgo = pSrc.getAlgorithm();
                if (!pSrcAlgo.equalsIgnoreCase("PSpecified")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported pSource algo: " + pSrcAlgo);
                }
                digestInput = ((PSource.PSpecified) pSrc).getValue();
            }
            md = MessageDigest.getInstance(mdName);
            mgf = new MGF1(mgfMdName);
        } catch (NoSuchAlgorithmException e) {
            throw new InvalidKeyException("Digest not available", e);
        }
        lHash = getInitialHash(md, digestInput);
        int digestLen = lHash.length;
        maxDataSize = paddedSize - 2 - 2 * digestLen;
        if (maxDataSize <= 0) {
            throw new InvalidKeyException
                    ("Key is too short for encryption using OAEPPadding" +
                     " with " + mdName + " and " + mgf.getName());
        }
        break;
    default:
        throw new InvalidKeyException("Invalid padding: " + type);
    }
}
 
源代码20 项目: hottub   文件: RSAPadding.java
private RSAPadding(int type, int paddedSize, SecureRandom random,
        OAEPParameterSpec spec) throws InvalidKeyException,
        InvalidAlgorithmParameterException {
    this.type = type;
    this.paddedSize = paddedSize;
    this.random = random;
    if (paddedSize < 64) {
        // sanity check, already verified in RSASignature/RSACipher
        throw new InvalidKeyException("Padded size must be at least 64");
    }
    switch (type) {
    case PAD_BLOCKTYPE_1:
    case PAD_BLOCKTYPE_2:
        maxDataSize = paddedSize - 11;
        break;
    case PAD_NONE:
        maxDataSize = paddedSize;
        break;
    case PAD_OAEP_MGF1:
        String mdName = "SHA-1";
        String mgfMdName = "SHA-1";
        byte[] digestInput = null;
        try {
            if (spec != null) {
                mdName = spec.getDigestAlgorithm();
                String mgfName = spec.getMGFAlgorithm();
                if (!mgfName.equalsIgnoreCase("MGF1")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported MGF algo: " + mgfName);
                }
                mgfMdName = ((MGF1ParameterSpec)spec.getMGFParameters())
                        .getDigestAlgorithm();
                PSource pSrc = spec.getPSource();
                String pSrcAlgo = pSrc.getAlgorithm();
                if (!pSrcAlgo.equalsIgnoreCase("PSpecified")) {
                    throw new InvalidAlgorithmParameterException
                        ("Unsupported pSource algo: " + pSrcAlgo);
                }
                digestInput = ((PSource.PSpecified) pSrc).getValue();
            }
            md = MessageDigest.getInstance(mdName);
            mgfMd = MessageDigest.getInstance(mgfMdName);
        } catch (NoSuchAlgorithmException e) {
            throw new InvalidKeyException
                    ("Digest " + mdName + " not available", e);
        }
        lHash = getInitialHash(md, digestInput);
        int digestLen = lHash.length;
        maxDataSize = paddedSize - 2 - 2 * digestLen;
        if (maxDataSize <= 0) {
            throw new InvalidKeyException
                    ("Key is too short for encryption using OAEPPadding" +
                     " with " + mdName + " and MGF1" + mgfMdName);
        }
        break;
    default:
        throw new InvalidKeyException("Invalid padding: " + type);
    }
}