whitelist sec and brainpool curves

This commit is contained in:
Vincent Breitmoser
2017-04-24 17:08:16 +02:00
parent a380405c80
commit c313f45219
2 changed files with 12 additions and 1 deletions

View File

@@ -18,10 +18,12 @@
package org.sufficientlysecure.keychain.pgp;
import org.bouncycastle.asn1.nist.NISTNamedCurves;
import org.bouncycastle.asn1.teletrust.TeleTrusTNamedCurves;
import org.bouncycastle.bcpg.CompressionAlgorithmTags;
import org.bouncycastle.bcpg.HashAlgorithmTags;
import org.bouncycastle.bcpg.PublicKeyAlgorithmTags;
import org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags;
import org.bouncycastle.crypto.ec.CustomNamedCurves;
import java.util.Arrays;
import java.util.HashSet;
@@ -108,7 +110,11 @@ public class PgpSecurityConstants {
private static HashSet<String> sCurveWhitelist = new HashSet<>(Arrays.asList(
NISTNamedCurves.getOID("P-256").getId(),
NISTNamedCurves.getOID("P-384").getId(),
NISTNamedCurves.getOID("P-521").getId()
NISTNamedCurves.getOID("P-521").getId(),
CustomNamedCurves.getOID("secp256k1").getId(),
TeleTrusTNamedCurves.getOID("brainpoolP256r1").getId(),
TeleTrusTNamedCurves.getOID("brainpoolP384r1").getId(),
TeleTrusTNamedCurves.getOID("brainpoolP512r1").getId()
));
public static boolean isSecureKey(CanonicalizedPublicKey key) {

View File

@@ -35,6 +35,7 @@ import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.nist.NISTNamedCurves;
import org.bouncycastle.asn1.teletrust.TeleTrusTNamedCurves;
import org.bouncycastle.bcpg.PublicKeyAlgorithmTags;
import org.bouncycastle.crypto.ec.CustomNamedCurves;
import org.bouncycastle.util.encoders.Hex;
import org.openintents.openpgp.OpenPgpDecryptionResult;
import org.openintents.openpgp.OpenPgpSignatureResult;
@@ -210,6 +211,10 @@ public class KeyFormattingUtils {
if (name != null) {
return name;
}
name = CustomNamedCurves.getName(oid);
if (name != null) {
return name;
}
if (context != null) {
return context.getResources().getString(R.string.unknown);
} else {