Example usage for org.bouncycastle.bcpg PublicKeyAlgorithmTags RSA_SIGN

List of usage examples for org.bouncycastle.bcpg PublicKeyAlgorithmTags RSA_SIGN

Introduction

In this page you can find the example usage for org.bouncycastle.bcpg PublicKeyAlgorithmTags RSA_SIGN.

Prototype

int RSA_SIGN

To view the source code for org.bouncycastle.bcpg PublicKeyAlgorithmTags RSA_SIGN.

Click Source Link

Usage

From source file:com.google.e2e.bcdriver.KeyChecker.java

License:Apache License

private static final boolean canSign(int algorithm) {
    return (algorithm == PublicKeyAlgorithmTags.RSA_GENERAL) || (algorithm == PublicKeyAlgorithmTags.RSA_SIGN)
            || (algorithm == PublicKeyAlgorithmTags.DSA) || (algorithm == PublicKeyAlgorithmTags.ECDSA);
}

From source file:divconq.pgp.PGPUtil.java

License:Open Source License

public static String getSignatureName(int keyAlgorithm, int hashAlgorithm) throws PGPException {
    String encAlg;/*from   w  w  w .j a  v  a 2  s  .  c  o  m*/

    switch (keyAlgorithm) {
    case PublicKeyAlgorithmTags.RSA_GENERAL:
    case PublicKeyAlgorithmTags.RSA_SIGN:
        encAlg = "RSA";
        break;
    case PublicKeyAlgorithmTags.DSA:
        encAlg = "DSA";
        break;
    case PublicKeyAlgorithmTags.ELGAMAL_ENCRYPT: // in some malformed cases.
    case PublicKeyAlgorithmTags.ELGAMAL_GENERAL:
        encAlg = "ElGamal";
        break;
    default:
        throw new PGPException("unknown algorithm tag in signature:" + keyAlgorithm);
    }

    return getDigestName(hashAlgorithm) + "with" + encAlg;
}

From source file:exchange.User.java

public User(String nick, String passw, String fonct) throws NoSuchAlgorithmException, PGPException {
    this.nickname = nick;
    this.password = passw;
    this.fonction = fonct;

    // Initialisation de la paire de cls PGP
    AsymmetricCipherKeyPairGenerator gen = new RSAKeyPairGenerator();

    gen.init(new RSAKeyGenerationParameters(new BigInteger("10001", 16), //publicExponent
            SecureRandom.getInstance("SHA1PRNG"), //prng
            1024, //strength
            80//certainty
    ));/*w ww  .ja  v a 2  s. c om*/
    AsymmetricCipherKeyPair kPair = gen.generateKeyPair();

    keyPair = new BcPGPKeyPair(PublicKeyAlgorithmTags.RSA_SIGN, kPair, new Date());
    privateKey = keyPair.getPrivateKey();
    keyAlgorithm = keyPair.getPublicKey().getAlgorithm();
}

From source file:org.sufficientlysecure.keychain.pgp.PgpKeyOperation.java

License:Open Source License

private static boolean checkSecurityTokenCompatibility(PGPSecretKey key, OperationLog log, int indent) {
    PGPPublicKey publicKey = key.getPublicKey();
    int algorithm = publicKey.getAlgorithm();
    if (algorithm != PublicKeyAlgorithmTags.RSA_ENCRYPT && algorithm != PublicKeyAlgorithmTags.RSA_SIGN
            && algorithm != PublicKeyAlgorithmTags.RSA_GENERAL) {
        log.add(LogType.MSG_MF_ERROR_BAD_SECURITY_TOKEN_ALGO, indent + 1);
        return false;
    }/*  www  .j a v  a  2s .  c o m*/

    // Key size must be 2048
    int keySize = publicKey.getBitStrength();
    if (keySize != 2048) {
        log.add(LogType.MSG_MF_ERROR_BAD_SECURITY_TOKEN_SIZE, indent + 1);
        return false;
    }

    // Secret key parts must be available
    if (isDivertToCard(key) || isDummy(key)) {
        log.add(LogType.MSG_MF_ERROR_BAD_SECURITY_TOKEN_STRIPPED, indent + 1);
        return false;
    }

    return true;
}

From source file:org.sufficientlysecure.keychain.ui.EditKeyFragment.java

License:Open Source License

private void editSubkey(final int position) {
    final long keyId = mSubkeysAdapter.getKeyId(position);

    Handler returnHandler = new Handler() {
        @Override//w  w w .j  a  va 2s . c  o  m
        public void handleMessage(Message message) {
            switch (message.what) {
            case EditSubkeyDialogFragment.MESSAGE_CHANGE_EXPIRY:
                editSubkeyExpiry(position);
                break;
            case EditSubkeyDialogFragment.MESSAGE_REVOKE:
                // toggle
                if (mSaveKeyringParcel.mRevokeSubKeys.contains(keyId)) {
                    mSaveKeyringParcel.mRevokeSubKeys.remove(keyId);
                } else {
                    mSaveKeyringParcel.mRevokeSubKeys.add(keyId);
                }
                break;
            case EditSubkeyDialogFragment.MESSAGE_STRIP: {
                SecretKeyType secretKeyType = mSubkeysAdapter.getSecretKeyType(position);
                if (secretKeyType == SecretKeyType.GNU_DUMMY) {
                    // Key is already stripped; this is a no-op.
                    break;
                }

                SubkeyChange change = mSaveKeyringParcel.getSubkeyChange(keyId);
                if (change == null) {
                    mSaveKeyringParcel.mChangeSubKeys.add(new SubkeyChange(keyId, true, false));
                    break;
                }
                // toggle
                change.mDummyStrip = !change.mDummyStrip;
                if (change.mDummyStrip && change.mMoveKeyToSecurityToken) {
                    // User had chosen to divert key, but now wants to strip it instead.
                    change.mMoveKeyToSecurityToken = false;
                }
                break;
            }
            case EditSubkeyDialogFragment.MESSAGE_MOVE_KEY_TO_SECURITY_TOKEN: {
                SecretKeyType secretKeyType = mSubkeysAdapter.getSecretKeyType(position);
                if (secretKeyType == SecretKeyType.DIVERT_TO_CARD || secretKeyType == SecretKeyType.GNU_DUMMY) {
                    Notify.create(getActivity(), R.string.edit_key_error_bad_security_token_stripped,
                            Notify.Style.ERROR).show();
                    break;
                }

                int algorithm = mSubkeysAdapter.getAlgorithm(position);
                if (algorithm != PublicKeyAlgorithmTags.RSA_GENERAL
                        && algorithm != PublicKeyAlgorithmTags.RSA_ENCRYPT
                        && algorithm != PublicKeyAlgorithmTags.RSA_SIGN) {
                    Notify.create(getActivity(), R.string.edit_key_error_bad_security_token_algo,
                            Notify.Style.ERROR).show();
                    break;
                }

                if (mSubkeysAdapter.getKeySize(position) != 2048) {
                    Notify.create(getActivity(), R.string.edit_key_error_bad_security_token_size,
                            Notify.Style.ERROR).show();
                    break;
                }

                SubkeyChange change;
                change = mSaveKeyringParcel.getSubkeyChange(keyId);
                if (change == null) {
                    mSaveKeyringParcel.mChangeSubKeys.add(new SubkeyChange(keyId, false, true));
                    break;
                }
                // toggle
                change.mMoveKeyToSecurityToken = !change.mMoveKeyToSecurityToken;
                if (change.mMoveKeyToSecurityToken && change.mDummyStrip) {
                    // User had chosen to strip key, but now wants to divert it.
                    change.mDummyStrip = false;
                }
                break;
            }
            }
            getLoaderManager().getLoader(LOADER_ID_SUBKEYS).forceLoad();
        }
    };

    // Create a new Messenger for the communication back
    final Messenger messenger = new Messenger(returnHandler);

    DialogFragmentWorkaround.INTERFACE.runnableRunDelayed(new Runnable() {
        public void run() {
            EditSubkeyDialogFragment dialogFragment = EditSubkeyDialogFragment.newInstance(messenger);

            dialogFragment.show(getActivity().getSupportFragmentManager(), "editSubkeyDialog");
        }
    });
}

From source file:org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.java

License:Open Source License

/**
 * Based on <a href="http://tools.ietf.org/html/rfc2440#section-9.1">OpenPGP Message Format</a>
 *//* w w w. j a va 2s .  c om*/
public static String getAlgorithmInfo(Context context, int algorithm, Integer keySize, String oid) {
    String algorithmStr;

    switch (algorithm) {
    case PublicKeyAlgorithmTags.RSA_GENERAL:
    case PublicKeyAlgorithmTags.RSA_ENCRYPT:
    case PublicKeyAlgorithmTags.RSA_SIGN: {
        algorithmStr = "RSA";
        break;
    }
    case PublicKeyAlgorithmTags.DSA: {
        algorithmStr = "DSA";
        break;
    }

    case PublicKeyAlgorithmTags.ELGAMAL_ENCRYPT:
    case PublicKeyAlgorithmTags.ELGAMAL_GENERAL: {
        algorithmStr = "ElGamal";
        break;
    }

    case PublicKeyAlgorithmTags.ECDSA: {
        if (oid == null) {
            return "ECDSA";
        }
        String oidName = KeyFormattingUtils.getCurveInfo(context, oid);
        return "ECDSA (" + oidName + ")";
    }
    case PublicKeyAlgorithmTags.ECDH: {
        if (oid == null) {
            return "ECDH";
        }
        String oidName = KeyFormattingUtils.getCurveInfo(context, oid);
        return "ECDH (" + oidName + ")";
    }

    default: {
        if (context != null) {
            algorithmStr = context.getResources().getString(R.string.unknown_algorithm);
        } else {
            algorithmStr = "unknown";
        }
        break;
    }
    }
    if (keySize != null && keySize > 0)
        return algorithmStr + ", " + keySize + " bit";
    else
        return algorithmStr;
}

From source file:org.sufficientlysecure.keychain.ui.ViewKeyAdvSubkeysFragment.java

License:Open Source License

private void editSubkey(final int position) {
    final long keyId = mSubkeysAdapter.getKeyId(position);

    Handler returnHandler = new Handler() {
        @Override//from   www  . j  a v  a 2 s.  c o m
        public void handleMessage(Message message) {
            switch (message.what) {
            case EditSubkeyDialogFragment.MESSAGE_CHANGE_EXPIRY:
                editSubkeyExpiry(position);
                break;
            case EditSubkeyDialogFragment.MESSAGE_REVOKE:
                // toggle
                if (mEditModeSaveKeyringParcel.mRevokeSubKeys.contains(keyId)) {
                    mEditModeSaveKeyringParcel.mRevokeSubKeys.remove(keyId);
                } else {
                    mEditModeSaveKeyringParcel.mRevokeSubKeys.add(keyId);
                }
                break;
            case EditSubkeyDialogFragment.MESSAGE_STRIP: {
                SecretKeyType secretKeyType = mSubkeysAdapter.getSecretKeyType(position);
                if (secretKeyType == SecretKeyType.GNU_DUMMY) {
                    // Key is already stripped; this is a no-op.
                    break;
                }

                SubkeyChange change = mEditModeSaveKeyringParcel.getSubkeyChange(keyId);
                if (change == null) {
                    mEditModeSaveKeyringParcel.mChangeSubKeys.add(new SubkeyChange(keyId, true, false));
                    break;
                }
                // toggle
                change.mDummyStrip = !change.mDummyStrip;
                if (change.mDummyStrip && change.mMoveKeyToSecurityToken) {
                    // User had chosen to divert key, but now wants to strip it instead.
                    change.mMoveKeyToSecurityToken = false;
                }
                break;
            }
            case EditSubkeyDialogFragment.MESSAGE_MOVE_KEY_TO_SECURITY_TOKEN: {
                SecretKeyType secretKeyType = mSubkeysAdapter.getSecretKeyType(position);
                if (secretKeyType == SecretKeyType.DIVERT_TO_CARD || secretKeyType == SecretKeyType.GNU_DUMMY) {
                    Notify.create(getActivity(), R.string.edit_key_error_bad_security_token_stripped,
                            Notify.Style.ERROR).show();
                    break;
                }

                int algorithm = mSubkeysAdapter.getAlgorithm(position);
                if (algorithm != PublicKeyAlgorithmTags.RSA_GENERAL
                        && algorithm != PublicKeyAlgorithmTags.RSA_ENCRYPT
                        && algorithm != PublicKeyAlgorithmTags.RSA_SIGN) {
                    Notify.create(getActivity(), R.string.edit_key_error_bad_security_token_algo,
                            Notify.Style.ERROR).show();
                    break;
                }

                if (mSubkeysAdapter.getKeySize(position) != 2048) {
                    Notify.create(getActivity(), R.string.edit_key_error_bad_security_token_size,
                            Notify.Style.ERROR).show();
                    break;
                }

                SubkeyChange change;
                change = mEditModeSaveKeyringParcel.getSubkeyChange(keyId);
                if (change == null) {
                    mEditModeSaveKeyringParcel.mChangeSubKeys.add(new SubkeyChange(keyId, false, true));
                    break;
                }
                // toggle
                change.mMoveKeyToSecurityToken = !change.mMoveKeyToSecurityToken;
                if (change.mMoveKeyToSecurityToken && change.mDummyStrip) {
                    // User had chosen to strip key, but now wants to divert it.
                    change.mDummyStrip = false;
                }
                break;
            }
            }
            getLoaderManager().getLoader(LOADER_ID_SUBKEYS).forceLoad();
        }
    };

    // Create a new Messenger for the communication back
    final Messenger messenger = new Messenger(returnHandler);

    DialogFragmentWorkaround.INTERFACE.runnableRunDelayed(new Runnable() {
        public void run() {
            EditSubkeyDialogFragment dialogFragment = EditSubkeyDialogFragment.newInstance(messenger);

            dialogFragment.show(getActivity().getSupportFragmentManager(), "editSubkeyDialog");
        }
    });
}