diff options
| author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-05-20 12:47:02 +0200 | 
|---|---|---|
| committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-05-20 12:47:23 +0200 | 
| commit | f30900d085f38034708f62f94e46a38f222d4cb7 (patch) | |
| tree | 0fe97797c1a612d18dddd812ab88eb589de92f9e /OpenKeychain/src/main/java/org/sufficientlysecure | |
| parent | 46cc7f8174d1bedabaafbab05e9461c1cfe72891 (diff) | |
| download | open-keychain-f30900d085f38034708f62f94e46a38f222d4cb7.tar.gz open-keychain-f30900d085f38034708f62f94e46a38f222d4cb7.tar.bz2 open-keychain-f30900d085f38034708f62f94e46a38f222d4cb7.zip | |
add user id flags to UserAttribute self signatures
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure')
| -rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java | 33 | 
1 files changed, 20 insertions, 13 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java index 89db378a9..2f771d8f2 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java @@ -553,7 +553,8 @@ public class PgpKeyOperation {                          PGPSignature cert = generateUserAttributeSignature(                                  getSignatureGenerator(masterSecretKey, cryptoInput),                                  cryptoInput.getSignatureTime(), -                                masterPrivateKey, masterPublicKey, vector); +                                masterPrivateKey, masterPublicKey, vector, +                                masterKeyFlags, masterKeyExpiry);                          modifiedPublicKey = PGPPublicKey.addCertification(modifiedPublicKey, vector, cert);                      } catch (NfcInteractionNeeded e) {                          nfcSignOps.addHash(e.hashToSign, e.hashAlgo); @@ -1319,11 +1320,9 @@ public class PgpKeyOperation {      } -    private PGPSignature generateUserIdSignature( -            PGPSignatureGenerator sGen, Date creationTime, -            PGPPrivateKey masterPrivateKey, PGPPublicKey pKey, String userId, boolean primary, -            int flags, long expiry) -            throws IOException, PGPException, SignatureException { +    private static PGPSignatureSubpacketGenerator generateHashedSelfSigSubpackets( +            Date creationTime, PGPPublicKey pKey, boolean primary, int flags, long expiry +    ) {          PGPSignatureSubpacketGenerator hashedPacketsGen = new PGPSignatureSubpacketGenerator();          { @@ -1357,6 +1356,17 @@ public class PgpKeyOperation {              }          } +        return hashedPacketsGen; +    } + +    private static PGPSignature generateUserIdSignature( +            PGPSignatureGenerator sGen, Date creationTime, +            PGPPrivateKey masterPrivateKey, PGPPublicKey pKey, String userId, boolean primary, +            int flags, long expiry) +            throws IOException, PGPException, SignatureException { + +        PGPSignatureSubpacketGenerator hashedPacketsGen = +                generateHashedSelfSigSubpackets(creationTime, pKey, primary, flags, expiry);          sGen.setHashedSubpackets(hashedPacketsGen.generate());          sGen.init(PGPSignature.POSITIVE_CERTIFICATION, masterPrivateKey);          return sGen.generateCertification(userId, pKey); @@ -1365,15 +1375,12 @@ public class PgpKeyOperation {      private static PGPSignature generateUserAttributeSignature(              PGPSignatureGenerator sGen, Date creationTime,              PGPPrivateKey masterPrivateKey, PGPPublicKey pKey, -            PGPUserAttributeSubpacketVector vector) +            PGPUserAttributeSubpacketVector vector, +            int flags, long expiry)                  throws IOException, PGPException, SignatureException { -        PGPSignatureSubpacketGenerator hashedPacketsGen = new PGPSignatureSubpacketGenerator(); -        { -            /* critical subpackets: we consider those important for a modern pgp implementation */ -            hashedPacketsGen.setSignatureCreationTime(true, creationTime); -        } - +        PGPSignatureSubpacketGenerator hashedPacketsGen = +                generateHashedSelfSigSubpackets(creationTime, pKey, false, flags, expiry);          sGen.setHashedSubpackets(hashedPacketsGen.generate());          sGen.init(PGPSignature.POSITIVE_CERTIFICATION, masterPrivateKey);          return sGen.generateCertification(vector, pKey); | 
