Interface INativeProxy

All Known Implementing Classes:
NativeProxy

public interface INativeProxy
Interface to native libraries that provide AES-256 encryption in CTR mode.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    salmonExpandKey(byte[] key, byte[] expandedKey)
    Expands the specified AES encryption key.
    void
    salmonInit(int aesImpl)
    Initializes the native library with the specified AES implementation.
    int
    salmonTransform(byte[] key, byte[] counter, byte[] srcBuffer, int srcOffset, byte[] destBuffer, int destOffset, int count)
    Transforms data using CTR mode.
  • Method Details

    • salmonInit

      void salmonInit(int aesImpl)
      Initializes the native library with the specified AES implementation.
      Parameters:
      aesImpl - The AES implementation, see ProviderType for possible values
    • salmonExpandKey

      void salmonExpandKey(byte[] key, byte[] expandedKey)
      Expands the specified AES encryption key.
      Parameters:
      key - The AES-256 encryption key (32 bytes)
      expandedKey - The expanded key (240 bytes)
    • salmonTransform

      int salmonTransform(byte[] key, byte[] counter, byte[] srcBuffer, int srcOffset, byte[] destBuffer, int destOffset, int count)
      Transforms data using CTR mode. CTR mode is symmetric so you should use it for both encryption and decryption.
      Parameters:
      key - The AES-256 encryption key (32 bytes)
      counter - The counter (16 bytes)
      srcBuffer - The source byte array.
      srcOffset - The source byte offset.
      destBuffer - The destination byte array.
      destOffset - The destination byte offset.
      count - The count of bytes to transform.
      Returns:
      The number of bytes transformed.