public static native int doFinal()

in src/main/java/org/apache/commons/crypto/cipher/OpenSslNative.java [61:160]


    public static native int doFinal(long context, ByteBuffer output,
            int offset, int maxOutputLength);

    /**
     * Finishes a multiple-part operation. The data is encrypted or decrypted,
     * depending on how this cipher was initialized.
     *
     * @param context The cipher context address
     * @param output The byte array for the result
     * @param offset The offset in output where the result is stored
     * @param maxOutputLength The maximum length for output
     * @return The number of bytes stored in output
     */
    public static native int doFinalByteArray(long context, byte[] output,
            int offset, int maxOutputLength);

    /**
     * Declares a native method to initialize the cipher context.
     *
     * @param context The cipher context address
     * @param mode ENCRYPT_MODE or DECRYPT_MODE
     * @param alg Algorithm Mode of OpenSsl
     * @param padding the padding mode of OpenSsl cipher
     * @param key crypto key
     * @param iv crypto iv
     * @return the context address of cipher
     */
    public static native long init(long context, int mode, int alg,
                                   int padding, byte[] key, byte[] iv);

    /**
     * Declares a native method to initialize the cipher context.
     *
     * @param algorithm The algorithm name of cipher
     * @param padding The padding name of cipher
     * @return the context address of cipher
     */
    public static native long initContext(int algorithm, int padding);

    /**
     * Declares a native method to initialize JNI field and method IDs.
     */
    public static native void initIDs();

    /**
     * Continues a multiple-part encryption/decryption operation. The data is
     * encrypted or decrypted, depending on how this cipher was initialized.
     *
     * @param context The cipher context address
     * @param input The input byte buffer
     * @param inputOffset The offset in input where the input starts
     * @param inputLength The input length
     * @param output The byte buffer for the result
     * @param outputOffset The offset in output where the result is stored
     * @param maxOutputLength The maximum length for output
     * @return The number of bytes stored in output
     */
    public static native int update(long context, ByteBuffer input,
            int inputOffset, int inputLength, ByteBuffer output,
            int outputOffset, int maxOutputLength);

    /**
     * Continues a multiple-part encryption/decryption operation. The data is
     * encrypted or decrypted, depending on how this cipher was initialized.
     *
     * @param context The cipher context address
     * @param input The input byte array
     * @param inputOffset The offset in input where the input starts
     * @param inputLength The input length
     * @param output The byte array for the result
     * @param outputOffset The offset in output where the result is stored
     * @param maxOutputLength The maximum length for output
     * @return The number of bytes stored in output
     */
    public static native int updateByteArray(long context, byte[] input,
            int inputOffset, int inputLength, byte[] output, int outputOffset,
            int maxOutputLength);

    /**
     * Continues a multiple-part encryption/decryption operation. The data is
     * encrypted or decrypted, depending on how this cipher was initialized.
     *
     * @param context The cipher context address
     * @param input The input byte array
     * @param inputOffset The offset in input where the input starts
     * @param inputLength The input length
     * @param output The byte buffer for the result
     * @param outputOffset The offset in output where the result is stored
     * @param maxOutputLength The maximum length for output
     * @return The number of bytes stored in output
     */
    public static native int updateByteArrayByteBuffer(long context, byte[] input,
                                                       int inputOffset, int inputLength,
                                                       ByteBuffer output, int outputOffset, int maxOutputLength);

    /**
     * Hides this constructor from external access.
     */
    private OpenSslNative() {
    }