Class RC4Cipher


  • class RC4Cipher
    extends java.lang.Object
    An implementation of the RC4 stream cipher.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int b  
      private int c  
      private int[] salt  
    • Constructor Summary

      Constructors 
      Constructor Description
      RC4Cipher()
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static int fixByte​(byte aByte)
      This will ensure that the value for a byte >=0.
      void setKey​(byte[] key)
      This will reset the key to be used.
      private static void swap​(int[] data, int firstIndex, int secondIndex)
      This will swap two values in an array.
      void write​(byte[] data, int offset, int len, java.io.OutputStream output)
      This will encrypt and write the data.
      void write​(byte[] data, java.io.OutputStream output)
      This will encrypt and write the data.
      void write​(byte aByte, java.io.OutputStream output)
      This will encrypt and write the next byte.
      void write​(java.io.InputStream data, java.io.OutputStream output)
      This will encrypt and write the data.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • salt

        private final int[] salt
      • b

        private int b
      • c

        private int c
    • Constructor Detail

      • RC4Cipher

        RC4Cipher()
        Constructor.
    • Method Detail

      • setKey

        public void setKey​(byte[] key)
        This will reset the key to be used.
        Parameters:
        key - The RC4 key used during encryption.
      • fixByte

        private static int fixByte​(byte aByte)
        This will ensure that the value for a byte >=0.
        Parameters:
        aByte - The byte to test against.
        Returns:
        A value >=0 and < 256
      • swap

        private static void swap​(int[] data,
                                 int firstIndex,
                                 int secondIndex)
        This will swap two values in an array.
        Parameters:
        data - The array to swap from.
        firstIndex - The index of the first element to swap.
        secondIndex - The index of the second element to swap.
      • write

        public void write​(byte aByte,
                          java.io.OutputStream output)
                   throws java.io.IOException
        This will encrypt and write the next byte.
        Parameters:
        aByte - The byte to encrypt.
        output - The stream to write to.
        Throws:
        java.io.IOException - If there is an error writing to the output stream.
      • write

        public void write​(byte[] data,
                          java.io.OutputStream output)
                   throws java.io.IOException
        This will encrypt and write the data.
        Parameters:
        data - The data to encrypt.
        output - The stream to write to.
        Throws:
        java.io.IOException - If there is an error writing to the output stream.
      • write

        public void write​(java.io.InputStream data,
                          java.io.OutputStream output)
                   throws java.io.IOException
        This will encrypt and write the data.
        Parameters:
        data - The data to encrypt.
        output - The stream to write to.
        Throws:
        java.io.IOException - If there is an error writing to the output stream.
      • write

        public void write​(byte[] data,
                          int offset,
                          int len,
                          java.io.OutputStream output)
                   throws java.io.IOException
        This will encrypt and write the data.
        Parameters:
        data - The data to encrypt.
        offset - The offset into the array to start reading data from.
        len - The number of bytes to attempt to read.
        output - The stream to write to.
        Throws:
        java.io.IOException - If there is an error writing to the output stream.