/** * Encrypts the text in <em>plain</em> with the public key of each recipient. The result is * returned as GnuPGData. * * @param recipients array of the keys to encrypt to * @param plain the text to be encrypted * @return GnuPGData the encrypted data * @see com.freiheit.gnupg.GnuPGData * @see com.freiheit.gnupg.GnuPGKey */ public GnuPGData encrypt(GnuPGKey[] recipients, String plain) throws GnuPGException { if (hasNoRecipients(recipients) || plain == null || plain.equals("")) throw new GnuPGException("Encryption arguments not complete."); final GnuPGData plainData = createDataObject(plain); GnuPGData cipherData = createDataObject(); gpgmeOpEncrypt( this.getInternalRepresentation(), getInternalRepresentationFromRecipients(recipients), plainData.getInternalRepresentation(), cipherData.getInternalRepresentation()); plainData.destroy(); return cipherData; }
/** * Encrypts the data from <em>plain</em> with the public key of each recipient. The result is * stored in <em>cipher</em>. * * @param recipients Array with the public keys of all recipients * @param plain text, that should be encrypted * @param cipher text, the encrypted plain text after method call * @see com.freiheit.gnupg.GnuPGData * @see com.freiheit.gnupg.GnuPGKey */ public void encrypt(GnuPGKey[] recipients, GnuPGData plain, GnuPGData cipher) throws GnuPGException { if (hasNoRecipients(recipients) || plain == null || cipher == null) throw new GnuPGException("Encryption arguments not complete."); // note that these are pointers to addresses in the javagnupg shared lib long context = this.getInternalRepresentation(); if (gpgmeGetSignersLength(context) == 0) gpgmeOpEncrypt( context, getInternalRepresentationFromRecipients(recipients), plain.getInternalRepresentation(), cipher.getInternalRepresentation()); else gpgmeOpEncryptSign( context, getInternalRepresentationFromRecipients(recipients), plain.getInternalRepresentation(), cipher.getInternalRepresentation()); }