## org.eclipse.emf.ecore.resource.impl
Class AESCipherImpl

    java.lang.Object
      org.eclipse.emf.ecore.resource.impl.AESCipherImpl

All Implemented Interfaces:
  URIConverter.Cipher

    public class AESCipherImpl

extends java.lang.Object
implements URIConverter.Cipher

EMF implementation for the `URIConverter.Cipher` interface using the AES encryption algorithm.

This shows how this class can be used:

     Map options = new HashMap();
     options.put(Resource.OPTION_CIPHER,
                 new AESCipherImpl("12345")); // "That's amazing! I've got the same combination on my luggage!"
     resource.save(options);
     resource.load(options);

Constructor Summary
`AESCipherImpl(java.lang.String password)`

Method Summary
`java.io.InputStream` `decrypt(java.io.InputStream in)` Decrypts the specified input stream.
`java.io.OutputStream` `encrypt(java.io.OutputStream outputStream)` Encrypts the specified output stream.
`void` `finish(java.io.InputStream in)` This method is invoked after the decrypted input stream is used allowing the Cipher implementation to do any maintenance work required, such as flushing internal cache.
`void` `finish(java.io.OutputStream out)` This method is invoked after the encrypted output stream is used allowing the Cipher implementation to do any maintenance work required, such as flushing an internal cache.
`int` `getKeysize()`
`void` `setKeysize(int keysize)` Sets the key size to be used when creating the AES key.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AESCipherImpl

    public AESCipherImpl(java.lang.String password)
                  throws java.lang.Exception

Throws:
  `java.lang.Exception`

Method Detail

### setKeysize

    public void setKeysize(int keysize)

  Sets the key size to be used when creating the AES key. Using anything larger than 128 may make the data file non-portable.

  The key size cannot be changed after this Cipher is used.

### getKeysize

    public int getKeysize()

### encrypt

    public java.io.OutputStream encrypt(java.io.OutputStream outputStream)
                                 throws java.lang.Exception

  Description copied from interface: `URIConverter.Cipher`
  Encrypts the specified output stream.

  Specified by:
    `encrypt` in interface `URIConverter.Cipher`
  Returns:
    an encrypted output stream
  Throws:
    `java.lang.Exception`

### finish

    public void finish(java.io.OutputStream out)
                throws java.lang.Exception

  Description copied from interface: `URIConverter.Cipher`
  This method is invoked after the encrypted output stream is used allowing the Cipher implementation to do any maintenance work required, such as flushing an internal cache.

  Specified by:
    `finish` in interface `URIConverter.Cipher`
  Parameters:
    `out` - the encrypted stream returned by `URIConverter.Cipher.encrypt(OutputStream)`.
  Throws:
    `java.lang.Exception`

### decrypt

    public java.io.InputStream decrypt(java.io.InputStream in)
                                throws java.lang.Exception

  Description copied from interface: `URIConverter.Cipher`
  Decrypts the specified input stream.

  Specified by:
    `decrypt` in interface `URIConverter.Cipher`
  Returns:
    a decrypted input stream
  Throws:
    `java.lang.Exception`

### finish

    public void finish(java.io.InputStream in)
                throws java.lang.Exception

  Description copied from interface: `URIConverter.Cipher`
  This method is invoked after the decrypted input stream is used allowing the Cipher implementation to do any maintenance work required, such as flushing internal cache.

  Specified by:
    `finish` in interface `URIConverter.Cipher`
  Parameters:
    `in` - the stream returned by `URIConverter.Cipher.decrypt(InputStream)`.
  Throws:
    `java.lang.Exception`

Copyright 2001-2006 IBM Corporation and others. All Rights Reserved.