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


Java TimestampToken类代码示例

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


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

示例1: checkTimestamp

import sun.security.timestamp.TimestampToken; //导入依赖的package包/类
static void checkTimestamp(String file, String policyId, String digestAlg)
        throws Exception {
    try (JarFile jf = new JarFile(file)) {
        JarEntry je = jf.getJarEntry("META-INF/OLD.RSA");
        try (InputStream is = jf.getInputStream(je)) {
            byte[] content = IOUtils.readFully(is, -1, true);
            PKCS7 p7 = new PKCS7(content);
            SignerInfo[] si = p7.getSignerInfos();
            if (si == null || si.length == 0) {
                throw new Exception("Not signed");
            }
            PKCS9Attribute p9 = si[0].getUnauthenticatedAttributes()
                    .getAttribute(PKCS9Attribute.SIGNATURE_TIMESTAMP_TOKEN_OID);
            PKCS7 tsToken = new PKCS7((byte[]) p9.getValue());
            TimestampToken tt =
                    new TimestampToken(tsToken.getContentInfo().getData());
            if (!tt.getHashAlgorithm().toString().equals(digestAlg)) {
                throw new Exception("Digest alg different");
            }
            if (!tt.getPolicyID().equals(policyId)) {
                throw new Exception("policyId different");
            }
        }
    }
}
 
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:26,代码来源:TimestampCheck.java

示例2: verifyTimestamp

import sun.security.timestamp.TimestampToken; //导入依赖的package包/类
private void verifyTimestamp(TimestampToken token)
    throws NoSuchAlgorithmException, SignatureException {

    MessageDigest md =
        MessageDigest.getInstance(token.getHashAlgorithm().getName());

    if (!Arrays.equals(token.getHashedMessage(),
        md.digest(encryptedDigest))) {

        throw new SignatureException("Signature timestamp (#" +
            token.getSerialNumber() + ") generated on " + token.getDate() +
            " is inapplicable");
    }

    if (debug != null) {
        debug.println();
        debug.println("Detected signature timestamp (#" +
            token.getSerialNumber() + ") generated on " + token.getDate());
        debug.println();
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:22,代码来源:SignerInfo.java

示例3: checkTimestamp

import sun.security.timestamp.TimestampToken; //导入依赖的package包/类
static void checkTimestamp(String file, String policyId, String digestAlg)
        throws Exception {
    try (JarFile jf = new JarFile(file)) {
        JarEntry je = jf.getJarEntry("META-INF/OLD.RSA");
        try (InputStream is = jf.getInputStream(je)) {
            byte[] content = is.readAllBytes();
            PKCS7 p7 = new PKCS7(content);
            SignerInfo[] si = p7.getSignerInfos();
            if (si == null || si.length == 0) {
                throw new Exception("Not signed");
            }
            PKCS9Attribute p9 = si[0].getUnauthenticatedAttributes()
                    .getAttribute(PKCS9Attribute.SIGNATURE_TIMESTAMP_TOKEN_OID);
            PKCS7 tsToken = new PKCS7((byte[]) p9.getValue());
            TimestampToken tt =
                    new TimestampToken(tsToken.getContentInfo().getData());
            if (!tt.getHashAlgorithm().toString().equals(digestAlg)) {
                throw new Exception("Digest alg different");
            }
            if (!tt.getPolicyID().equals(policyId)) {
                throw new Exception("policyId different");
            }
        }
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:26,代码来源:TimestampCheck.java

示例4: verifyTimestamp

import sun.security.timestamp.TimestampToken; //导入依赖的package包/类
private void verifyTimestamp(TimestampToken token, byte[] signature)
    throws NoSuchAlgorithmException, SignatureException {

    MessageDigest md =
        MessageDigest.getInstance(token.getHashAlgorithm().getName());

    if (!Arrays.equals(token.getHashedMessage(), md.digest(signature))) {
        throw new SignatureException("Signature timestamp (#" +
            token.getSerialNumber() + ") generated on " + token.getDate() +
            " is inapplicable");
    }

    if (debug != null) {
        debug.println();
        debug.println("Detected signature timestamp (#" +
            token.getSerialNumber() + ") generated on " + token.getDate());
        debug.println();
    }
}
 
开发者ID:greghaskins,项目名称:openjdk-jdk7u-jdk,代码行数:20,代码来源:SignatureFileVerifier.java

示例5: getTimestamp

import sun.security.timestamp.TimestampToken; //导入依赖的package包/类
public Timestamp getTimestamp()
    throws IOException, NoSuchAlgorithmException, SignatureException,
           CertificateException
{
    if (timestamp != null || !hasTimestamp)
        return timestamp;

    if (unauthenticatedAttributes == null) {
        hasTimestamp = false;
        return null;
    }
    PKCS9Attribute tsTokenAttr =
        unauthenticatedAttributes.getAttribute(
            PKCS9Attribute.SIGNATURE_TIMESTAMP_TOKEN_OID);
    if (tsTokenAttr == null) {
        hasTimestamp = false;
        return null;
    }

    PKCS7 tsToken = new PKCS7((byte[])tsTokenAttr.getValue());
    // Extract the content (an encoded timestamp token info)
    byte[] encTsTokenInfo = tsToken.getContentInfo().getData();
    // Extract the signer (the Timestamping Authority)
    // while verifying the content
    SignerInfo[] tsa = tsToken.verify(encTsTokenInfo);
    // Expect only one signer
    ArrayList<X509Certificate> chain = tsa[0].getCertificateChain(tsToken);
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    CertPath tsaChain = cf.generateCertPath(chain);
    // Create a timestamp token info object
    TimestampToken tsTokenInfo = new TimestampToken(encTsTokenInfo);
    // Check that the signature timestamp applies to this signature
    verifyTimestamp(tsTokenInfo);
    // Create a timestamp object
    timestamp = new Timestamp(tsTokenInfo.getDate(), tsaChain);
    return timestamp;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:38,代码来源:SignerInfo.java

示例6: verifyTimestamp

import sun.security.timestamp.TimestampToken; //导入依赖的package包/类
private void verifyTimestamp(TimestampToken token)
    throws NoSuchAlgorithmException, SignatureException {
    String digestAlgname = token.getHashAlgorithm().getName();
    // check that algorithm is not restricted
    if (!JAR_DISABLED_CHECK.permits(DIGEST_PRIMITIVE_SET, digestAlgname,
            null)) {
        throw new SignatureException("Timestamp token digest check failed. " +
                "Disabled algorithm used: " + digestAlgname);
    }

    MessageDigest md =
        MessageDigest.getInstance(digestAlgname);

    if (!Arrays.equals(token.getHashedMessage(),
        md.digest(encryptedDigest))) {

        throw new SignatureException("Signature timestamp (#" +
            token.getSerialNumber() + ") generated on " + token.getDate() +
            " is inapplicable");
    }

    if (debug != null) {
        debug.println();
        debug.println("Detected signature timestamp (#" +
            token.getSerialNumber() + ") generated on " + token.getDate());
        debug.println();
    }
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:29,代码来源:SignerInfo.java

示例7: getTimestamp

import sun.security.timestamp.TimestampToken; //导入依赖的package包/类
private Timestamp getTimestamp(SignerInfo info)
    throws IOException, NoSuchAlgorithmException, SignatureException,
        CertificateException {

    Timestamp timestamp = null;

    // Extract the signer's unsigned attributes
    PKCS9Attributes unsignedAttrs = info.getUnauthenticatedAttributes();
    if (unsignedAttrs != null) {
        PKCS9Attribute timestampTokenAttr =
            unsignedAttrs.getAttribute("signatureTimestampToken");
        if (timestampTokenAttr != null) {
            PKCS7 timestampToken =
                new PKCS7((byte[])timestampTokenAttr.getValue());
            // Extract the content (an encoded timestamp token info)
            byte[] encodedTimestampTokenInfo =
                timestampToken.getContentInfo().getData();
            // Extract the signer (the Timestamping Authority)
            // while verifying the content
            SignerInfo[] tsa =
                timestampToken.verify(encodedTimestampTokenInfo);
            // Expect only one signer
            ArrayList<X509Certificate> chain =
                            tsa[0].getCertificateChain(timestampToken);
            CertPath tsaChain = certificateFactory.generateCertPath(chain);
            // Create a timestamp token info object
            TimestampToken timestampTokenInfo =
                new TimestampToken(encodedTimestampTokenInfo);
            // Create a timestamp object
            timestamp =
                new Timestamp(timestampTokenInfo.getDate(), tsaChain);
        }
    }
    return timestamp;
}
 
开发者ID:openjdk,项目名称:jdk7-jdk,代码行数:36,代码来源:SignatureFileVerifier.java

示例8: getTimestamp

import sun.security.timestamp.TimestampToken; //导入依赖的package包/类
private Timestamp getTimestamp(SignerInfo info)
    throws IOException, NoSuchAlgorithmException, SignatureException,
        CertificateException {

    Timestamp timestamp = null;

    // Extract the signer's unsigned attributes
    PKCS9Attributes unsignedAttrs = info.getUnauthenticatedAttributes();
    if (unsignedAttrs != null) {
        PKCS9Attribute timestampTokenAttr =
            unsignedAttrs.getAttribute("signatureTimestampToken");
        if (timestampTokenAttr != null) {
            PKCS7 timestampToken =
                new PKCS7((byte[])timestampTokenAttr.getValue());
            // Extract the content (an encoded timestamp token info)
            byte[] encodedTimestampTokenInfo =
                timestampToken.getContentInfo().getData();
            // Extract the signer (the Timestamping Authority)
            // while verifying the content
            SignerInfo[] tsa =
                timestampToken.verify(encodedTimestampTokenInfo);
            // Expect only one signer
            ArrayList<X509Certificate> chain =
                            tsa[0].getCertificateChain(timestampToken);
            CertPath tsaChain = certificateFactory.generateCertPath(chain);
            // Create a timestamp token info object
            TimestampToken timestampTokenInfo =
                new TimestampToken(encodedTimestampTokenInfo);
            // Check that the signature timestamp applies to this signature
            verifyTimestamp(timestampTokenInfo, info.getEncryptedDigest());
            // Create a timestamp object
            timestamp =
                new Timestamp(timestampTokenInfo.getDate(), tsaChain);
        }
    }
    return timestamp;
}
 
开发者ID:greghaskins,项目名称:openjdk-jdk7u-jdk,代码行数:38,代码来源:SignatureFileVerifier.java


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