KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > derby > iapi > services > crypto > CipherProvider


1 /*
2
3    Derby - Class org.apache.derby.iapi.services.crypto.CipherProvider
4
5    Licensed to the Apache Software Foundation (ASF) under one or more
6    contributor license agreements. See the NOTICE file distributed with
7    this work for additional information regarding copyright ownership.
8    The ASF licenses this file to you under the Apache License, Version 2.0
9    (the "License"); you may not use this file except in compliance with
10    the License. You may obtain a copy of the License at
11
12       http://www.apache.org/licenses/LICENSE-2.0
13
14    Unless required by applicable law or agreed to in writing, software
15    distributed under the License is distributed on an "AS IS" BASIS,
16    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17    See the License for the specific language governing permissions and
18    limitations under the License.
19
20  */

21
22 package org.apache.derby.iapi.services.crypto;
23
24 import java.security.Key JavaDoc;
25
26 import org.apache.derby.iapi.error.StandardException;
27
28 /**
29     A CipherProvider is a wrapper for a Cipher class in JCE.
30
31     This service is only available when run on JDK1.2 or beyond.
32     To use this service, either the SunJCE or an alternative clean room
33     implementation of the JCE must be installed.
34
35     To use a CipherProvider to encrypt or decrypt, it needs 3 things:
36     1) A CipherProvider that is initialized to ENCRYPT or DECRYPT
37     2) A secret Key for the encryption/decryption
38     3) An Initialization Vector (IvParameterSpec) that is used to create some
39         randomness in the encryption
40
41     See $WS/docs/funcspec/mulan/configurableEncryption.html
42
43     See http://java.sun.com/products/JDK/1.1/docs/guide/security/CryptoSpec.html
44     See http://java.sun.com/products/JDK/1.2/docs/guide/security/CryptoSpec.html
45     See http://java.sun.com/products/jdk/1.2/jce/index.html
46  */

47
48 public interface CipherProvider
49 {
50
51     /**
52         Encrypt data - use only with Cipher that has been initialized with
53         CipherFactory.ENCRYPT.
54
55         @return The number of bytes stored in ciphertext.
56
57         @param cleartext the byte array containing the cleartext
58         @param offset encrypt from this byte offset in the cleartext
59         @param length encrypt this many bytes starting from offset
60         @param ciphertext the byte array to store the ciphertext
61         @param outputOffset the offset into the ciphertext array the output
62                 should go
63
64         If cleartext and ciphertext are the same array, caller must be careful
65         to not overwrite the cleartext before it is scrambled.
66
67         @exception StandardException Standard Cloudscape Error Policy
68      */

69     int encrypt(byte[] cleartext, int offset, int length,
70                 byte[] ciphertext, int outputOffset)
71          throws StandardException;
72
73     /**
74         Decrypt data - use only with Cipher that has been initialized with
75         CipherFactory.DECRYPT.
76
77         @return The number of bytes stored in cleartext.
78
79         @param ciphertext the byte array containing the ciphertext
80         @param offset decrypt from this byte offset in the ciphertext
81         @param length decrypt this many bytes starting from offset
82         @param cleartext the byte array to store the cleartext
83         @param outputOffset the offset into the cleartext array the output
84                 should go
85
86         If cleartext and ciphertext are the same array, caller must be careful
87         to not overwrite the ciphertext before it is un-scrambled.
88
89         @exception StandardException Standard Cloudscape Error Policy
90      */

91     int decrypt(byte[] ciphertext, int offset, int length,
92                 byte[] cleartext, int outputOffset)
93          throws StandardException;
94
95
96     /**
97         Returns the encryption block size used during creation of the encrypted database
98      */

99     public int getEncryptionBlockSize();
100 }
101
Popular Tags