本文整理汇总了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);
}
示例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.");
}
示例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;
}
示例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);
}
示例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;
}
示例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;
}
示例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());
}