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


Java PGPPublicKey.isMasterKey方法代码示例

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


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

示例1: getEncryptionKey

import org.spongycastle.openpgp.PGPPublicKey; //导入方法依赖的package包/类
public static PGPPublicKey getEncryptionKey(PGPPublicKeyRing publicKeyring) {
    @SuppressWarnings("unchecked")
    Iterator<PGPPublicKey> iter = publicKeyring.getPublicKeys();
    while (iter.hasNext()) {
        PGPPublicKey pk = iter.next();
        if (!pk.isMasterKey()) {
            int keyFlags = getKeyFlags(pk);
            if ((keyFlags & PGPKeyFlags.CAN_ENCRYPT_COMMS) == PGPKeyFlags.CAN_ENCRYPT_COMMS)
                return pk;

        }
    }

    // legacy key format support
    return getLegacyEncryptionKey(publicKeyring);
}
 
开发者ID:kontalk,项目名称:androidclient,代码行数:17,代码来源:PGP.java

示例2: signPublicKey

import org.spongycastle.openpgp.PGPPublicKey; //导入方法依赖的package包/类
/**
 * Searches for the master (signing) key in the given public keyring and
 * signs it with our master key.
 * @return the same public keyring with the signed key. This is suitable to
 * be imported directly into GnuPG.
 * @see #signPublicKey(PGPPublicKey, String)
 */
@SuppressWarnings("unchecked")
public PGPPublicKeyRing signPublicKey(byte[] publicKeyring, String id)
        throws PGPException, IOException, SignatureException {

    PGPObjectFactory reader = new PGPObjectFactory(publicKeyring);
    Object o = reader.nextObject();
    while (o != null) {
        if (o instanceof PGPPublicKeyRing) {
            PGPPublicKeyRing pubRing = (PGPPublicKeyRing) o;
            Iterator<PGPPublicKey> iter = pubRing.getPublicKeys();
            while (iter.hasNext()) {
                PGPPublicKey pk = iter.next();
                if (pk.isMasterKey()) {
                    PGPPublicKey signed = signPublicKey(pk, id);
                    return PGPPublicKeyRing.insertPublicKey(pubRing, signed);
                }
            }
        }
        o = reader.nextObject();
    }

    throw new PGPException("invalid keyring data.");
}
 
开发者ID:ShadiNachat,项目名称:Chatting-App-,代码行数:31,代码来源:PersonalKey.java

示例3: getMasterKey

import org.spongycastle.openpgp.PGPPublicKey; //导入方法依赖的package包/类
/** Returns the first master key found in the given public keyring. */
public static PGPPublicKey getMasterKey(PGPPublicKeyRing publicKeyring) {
    @SuppressWarnings("unchecked")
    Iterator<PGPPublicKey> iter = publicKeyring.getPublicKeys();
    while (iter.hasNext()) {
        PGPPublicKey pk = iter.next();
        if (pk.isMasterKey())
            return pk;
    }

    return null;
}
 
开发者ID:kontalk,项目名称:androidclient,代码行数:13,代码来源:PGP.java

示例4: getSigningKey

import org.spongycastle.openpgp.PGPPublicKey; //导入方法依赖的package包/类
public static PGPPublicKey getSigningKey(PGPPublicKeyRing publicKeyring) {
    @SuppressWarnings("unchecked")
    Iterator<PGPPublicKey> iter = publicKeyring.getPublicKeys();
    while (iter.hasNext()) {
        PGPPublicKey pk = iter.next();
        if (!pk.isMasterKey()) {
            int keyFlags = getKeyFlags(pk);
            if ((keyFlags & PGPKeyFlags.CAN_SIGN) == PGPKeyFlags.CAN_SIGN)
                return pk;
        }
    }

    // legacy key format support
    return getLegacySigningKey(publicKeyring);
}
 
开发者ID:kontalk,项目名称:androidclient,代码行数:16,代码来源:PGP.java

示例5: getLegacyEncryptionKey

import org.spongycastle.openpgp.PGPPublicKey; //导入方法依赖的package包/类
private static PGPPublicKey getLegacyEncryptionKey(PGPPublicKeyRing publicKeyring) {
    @SuppressWarnings("unchecked")
    Iterator<PGPPublicKey> iter = publicKeyring.getPublicKeys();
    while (iter.hasNext()) {
        PGPPublicKey pk = iter.next();
        if (!pk.isMasterKey() && pk.isEncryptionKey())
            return pk;
    }

    return null;
}
 
开发者ID:kontalk,项目名称:androidclient,代码行数:12,代码来源:PGP.java

示例6: getLegacySigningKey

import org.spongycastle.openpgp.PGPPublicKey; //导入方法依赖的package包/类
private static PGPPublicKey getLegacySigningKey(PGPPublicKeyRing publicKeyring) {
    @SuppressWarnings("unchecked")
    Iterator<PGPPublicKey> iter = publicKeyring.getPublicKeys();
    while (iter.hasNext()) {
        PGPPublicKey pk = iter.next();
        if (pk.isMasterKey())
            return pk;
    }

    return null;
}
 
开发者ID:kontalk,项目名称:androidclient,代码行数:12,代码来源:PGP.java

示例7: createCertificate

import org.spongycastle.openpgp.PGPPublicKey; //导入方法依赖的package包/类
static X509Certificate createCertificate(PGPPublicKeyRing publicKeyRing, PGPPrivateKey privateKey)
    throws InvalidKeyException, IllegalStateException, NoSuchAlgorithmException,
    SignatureException, CertificateException, NoSuchProviderException, PGPException, IOException, OperatorCreationException {

    X500NameBuilder x500NameBuilder = new X500NameBuilder();

    /*
     * The X.509 Name to be the subject DN is prepared.
     * The CN is extracted from the Secret Key user ID.
     */

    x500NameBuilder.addRDN(BCStyle.O, DN_COMMON_PART_O);

    PGPPublicKey publicKey = null;

    @SuppressWarnings("unchecked")
    Iterator<PGPPublicKey> iter = publicKeyRing.getPublicKeys();
    while (iter.hasNext()) {
        PGPPublicKey pk = iter.next();
        if (pk.isMasterKey()) {
            publicKey = pk;
            break;
        }
    }

    if (publicKey == null)
        throw new IllegalArgumentException("no master key found");

    List<String> xmppAddrs = new LinkedList<>();
    for (@SuppressWarnings("unchecked") Iterator<String> it = publicKey.getUserIDs(); it.hasNext();) {
        String attrib = it.next();
        x500NameBuilder.addRDN(BCStyle.CN, attrib);
        // extract email for the subjectAltName
        PGPUserID uid = PGPUserID.parse(attrib);
        if (uid != null && uid.getEmail() != null)
            xmppAddrs.add(uid.getEmail());
    }

    X500Name x509name = x500NameBuilder.build();

    /*
     * To check the signature from the certificate on the recipient side,
     * the creation time needs to be embedded in the certificate.
     * It seems natural to make this creation time be the "not-before"
     * date of the X.509 certificate.
     * Unlimited PGP keys have a validity of 0 second. In this case,
     * the "not-after" date will be the same as the not-before date.
     * This is something that needs to be checked by the service
     * receiving this certificate.
     */
    Date creationTime = publicKey.getCreationTime();
    Date validTo = null;
    if (publicKey.getValidSeconds()>0)
       validTo = new Date(creationTime.getTime() + 1000L * publicKey.getValidSeconds());

    return createCertificate(
            PGP.convertPublicKey(publicKey),
            PGP.convertPrivateKey(privateKey),
            x509name,
            creationTime, validTo,
            xmppAddrs,
            publicKeyRing.getEncoded());
}
 
开发者ID:kontalk,项目名称:androidclient,代码行数:64,代码来源:X509Bridge.java


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