View Javadoc

1   /*
2    * Copyright [2006] [University Corporation for Advanced Internet Development, Inc.]
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.opensaml.xml.encryption;
18  
19  import org.opensaml.xml.security.credential.Credential;
20  import org.opensaml.xml.security.keyinfo.KeyInfoGenerator;
21  
22  /**
23   * Parameters for encrypting XMLObjects.
24   */
25  public class EncryptionParameters {
26  
27      /** Credential used to encrypt. */
28      private Credential encryptionCredential;
29  
30      /** XML Encryption algorithm URI used to encrypt. */
31      private String algorithm;
32  
33      /** Generator for dynamically generating a KeyInfo instance containing information
34       * from the encryption credential. */
35      private KeyInfoGenerator keyInfoGenerator;
36  
37      /**
38       * Constructor.
39       */
40      public EncryptionParameters() {
41          // This will be the default for auto encryption key generation
42          setAlgorithm(EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256);
43      }
44  
45      /**
46       * Gets the XML Encryption algorithm URI used to encrypt.
47       * 
48       * @return the algorithm URI used to encrypt
49       */
50      public String getAlgorithm() {
51          return this.algorithm;
52      }
53  
54      /**
55       * Sets the XML Encryption algorithm URI used to encrypt.
56       * 
57       * @param newAlgorithm the algorithm URI used to encrypt
58       */
59      public void setAlgorithm(String newAlgorithm) {
60          this.algorithm = newAlgorithm;
61      }
62  
63      /**
64       * Gets the credential used to encrypt.
65       * 
66       * @return the credential used to encrypt
67       */
68      public Credential getEncryptionCredential() {
69          return this.encryptionCredential;
70      }
71  
72      /**
73       * Sets the credential used to encrypt.
74       * 
75       * @param newEncryptionCredential the credential used to encrypt
76       */
77      public void setEncryptionCredential(Credential newEncryptionCredential) {
78          this.encryptionCredential = newEncryptionCredential;
79      }
80  
81      /**
82       * Gets the instance which will be used to generate a KeyInfo
83       * object from the encryption credential.
84       * 
85       * @return the generator instance
86       */
87      public KeyInfoGenerator getKeyInfoGenerator() {
88          return this.keyInfoGenerator;
89      }
90  
91      /**
92       * Sets the instance which will be used to generate a KeyInfo
93       * object from the encryption credential.
94       * 
95       * @param newKeyInfoGenerator the new generator instance
96       */
97      public void setKeyInfoGenerator(KeyInfoGenerator newKeyInfoGenerator) {
98          this.keyInfoGenerator = newKeyInfoGenerator;
99      }
100 }