Search in sources :

Example 1 with PGPSignatureSubpacketVector

use of org.bouncycastle.openpgp.PGPSignatureSubpacketVector in project camel by apache.

the class PGPDataFormatUtil method hasOneOfExpectedKeyFlags.

/**
     * Checks whether one of the signatures of the key has one of the expected
     * key flags
     * 
     * @param key
     * @return {@link Boolean#TRUE} if key has one of the expected flag,
     *         <code>null</code> if the key does not have any key flags,
     *         {@link Boolean#FALSE} if the key has none of the expected flags
     */
private static Boolean hasOneOfExpectedKeyFlags(PGPPublicKey key, int[] expectedKeyFlags) {
    boolean containsKeyFlags = false;
    for (@SuppressWarnings("unchecked") Iterator<PGPSignature> itsig = key.getSignatures(); itsig.hasNext(); ) {
        PGPSignature sig = itsig.next();
        PGPSignatureSubpacketVector subPacks = sig.getHashedSubPackets();
        if (subPacks != null) {
            int keyFlag = subPacks.getKeyFlags();
            if (keyFlag > 0 && !containsKeyFlags) {
                containsKeyFlags = true;
            }
            for (int expectdKeyFlag : expectedKeyFlags) {
                int result = keyFlag & expectdKeyFlag;
                if (result == expectdKeyFlag) {
                    return Boolean.TRUE;
                }
            }
        }
    }
    if (containsKeyFlags) {
        return Boolean.FALSE;
    }
    // no key flag
    return null;
}
Also used : PGPSignatureSubpacketVector(org.bouncycastle.openpgp.PGPSignatureSubpacketVector) PGPSignature(org.bouncycastle.openpgp.PGPSignature)

Aggregations

PGPSignature (org.bouncycastle.openpgp.PGPSignature)1 PGPSignatureSubpacketVector (org.bouncycastle.openpgp.PGPSignatureSubpacketVector)1