All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.spongycastle.tls.crypto.impl.TlsSuiteMac Maven / Gradle / Ivy

Go to download

Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle intended for the Android platform. Android unfortunately ships with a stripped-down version of Bouncy Castle, which prevents easy upgrades - Spongy Castle overcomes this and provides a full, up-to-date version of the Bouncy Castle cryptographic libs.

The newest version!
package org.spongycastle.tls.crypto.impl;

/**
 * Base interface for a generic TLS MAC implementation for use with a cipher suite.
 */
public interface TlsSuiteMac
{
    /**
     * Return the output length (in bytes) of this MAC.
     *
     * @return The output length of this MAC.
     */
    int getSize();

    /**
     * Calculate the MAC for some given data.
     *
     * @param type    The message type of the message.
     * @param message A byte array containing the message.
     * @param offset  The number of bytes to skip, before the message starts.
     * @param length  The length of the message.
     * @return A new byte array containing the MAC value.
     */
    byte[] calculateMac(long seqNo, short type, byte[] message, int offset, int length);

    /**
     * Constant time calculation of the MAC for some given data with a given expected length.
     *
     * @param seqNo The sequence number of the cipher text.
     * @param type The content type of the message.
     * @param message A byte array containing the message.
     * @param offset The number of bytes to skip, before the message starts.
     * @param length The length of the message.
     * @param expectedLength The expected length of the full message,
     * @param randomData Random data for padding out the MAC calculation if required.
     * @return A new byte array containing the MAC value.
     */
    byte[] calculateMacConstantTime(long seqNo, short type, byte[] message, int offset, int length, int expectedLength, byte[] randomData);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy