/*
 * reserved comment block
 * DO NOT REMOVE OR ALTER!
 */
/*
 * Copyright  2003-2004 The Apache Software Foundation.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */
package com.sun.org.apache.xml.internal.security.encryption;


import com.sun.org.apache.xml.internal.security.keys.KeyInfo;


EncryptedType is the abstract type from which EncryptedData and EncryptedKey are derived. While these two latter element types are very similar with respect to their content models, a syntactical distinction is useful to processing.

Its schema definition is as follows:

<complexType name='EncryptedType' abstract='true'> <sequence> <element name='EncryptionMethod' type='xenc:EncryptionMethodType' minOccurs='0'/> <element ref='ds:KeyInfo' minOccurs='0'/> <element ref='xenc:CipherData'/> <element ref='xenc:EncryptionProperties' minOccurs='0'/> </sequence> <attribute name='Id' type='ID' use='optional'/> <attribute name='Type' type='anyURI' use='optional'/> <attribute name='MimeType' type='string' use='optional'/> <attribute name='Encoding' type='anyURI' use='optional'/> </complexType>
Author:Axl Mattheus
/** * EncryptedType is the abstract type from which <code>EncryptedData</code> and * <code>EncryptedKey</code> are derived. While these two latter element types * are very similar with respect to their content models, a syntactical * distinction is useful to processing. * <p> * Its schema definition is as follows: * <xmp> * <complexType name='EncryptedType' abstract='true'> * <sequence> * <element name='EncryptionMethod' type='xenc:EncryptionMethodType' * minOccurs='0'/> * <element ref='ds:KeyInfo' minOccurs='0'/> * <element ref='xenc:CipherData'/> * <element ref='xenc:EncryptionProperties' minOccurs='0'/> * </sequence> * <attribute name='Id' type='ID' use='optional'/> * <attribute name='Type' type='anyURI' use='optional'/> * <attribute name='MimeType' type='string' use='optional'/> * <attribute name='Encoding' type='anyURI' use='optional'/> * </complexType> * </xmp> * * @author Axl Mattheus */
public interface EncryptedType {
Returns a String providing for the standard method of assigning an id to the element within the document context.
Returns:the id for the EncryptedType.
/** * Returns a <code>String</code> providing for the standard method of * assigning an id to the element within the document context. * * @return the id for the <code>EncryptedType</code>. */
String getId();
Sets the id.
@paramid.
/** * Sets the id. * * @param id. */
void setId(String id);
Returns an URI identifying type information about the plaintext form of the encrypted content. While optional, this specification takes advantage of it for mandatory processing described in Processing Rules: Decryption (section 4.2). If the EncryptedData element contains data of Type 'element' or element 'content', and replaces that data in an XML document context, it is strongly recommended the Type attribute be provided. Without this information, the decryptor will be unable to automatically restore the XML document to its original cleartext form.
Returns:the identifier for the type of information in plaintext form of encrypted content.
/** * Returns an <code>URI</code> identifying type information about the * plaintext form of the encrypted content. While optional, this * specification takes advantage of it for mandatory processing described in * Processing Rules: Decryption (section 4.2). If the * <code>EncryptedData</code> element contains data of Type 'element' or * element 'content', and replaces that data in an XML document context, it * is strongly recommended the Type attribute be provided. Without this * information, the decryptor will be unable to automatically restore the * XML document to its original cleartext form. * * @return the identifier for the type of information in plaintext form of * encrypted content. */
String getType();
Sets the type.
Params:
  • type – an URI identifying type information about the plaintext form of the encrypted content.
/** * Sets the type. * * @param type an <code>URI</code> identifying type information about the * plaintext form of the encrypted content. */
void setType(String type);
Returns a String which describes the media type of the data which has been encrypted. The value of this attribute has values defined by [MIME]. For example, if the data that is encrypted is a base64 encoded PNG, the transfer Encoding may be specified as 'http://www.w3.org/2000/09/xmldsig#base64' and the MimeType as 'image/png'.
This attribute is purely advisory; no validation of the MimeType information is required and it does not indicate the encryption application must do any additional processing. Note, this information may not be necessary if it is already bound to the identifier in the Type attribute. For example, the Element and Content types defined in this specification are always UTF-8 encoded text.
Returns:the media type of the data which was encrypted.
/** * Returns a <code>String</code> which describes the media type of the data * which has been encrypted. The value of this attribute has values defined * by [MIME]. For example, if the data that is encrypted is a base64 encoded * PNG, the transfer Encoding may be specified as * 'http://www.w3.org/2000/09/xmldsig#base64' and the MimeType as * 'image/png'. * <br> * This attribute is purely advisory; no validation of the MimeType * information is required and it does not indicate the encryption * application must do any additional processing. Note, this information may * not be necessary if it is already bound to the identifier in the Type * attribute. For example, the Element and Content types defined in this * specification are always UTF-8 encoded text. * * @return the media type of the data which was encrypted. */
String getMimeType();
Sets the mime type.
Params:
  • type – a String which describes the media type of the data which has been encrypted.
/** * Sets the mime type. * * @param type a <code>String</code> which describes the media type of the * data which has been encrypted. */
void setMimeType(String type);
Retusn an URI representing the encoding of the EncryptedType.
Returns:the encoding of this EncryptedType.
/** * Retusn an <code>URI</code> representing the encoding of the * <code>EncryptedType</code>. * * @return the encoding of this <code>EncryptedType</code>. */
String getEncoding();
Sets the URI representing the encoding of the EncryptedType.
@paramencoding.
/** * Sets the <code>URI</code> representing the encoding of the * <code>EncryptedType</code>. * * @param encoding. */
void setEncoding(String encoding);
Returns an EncryptionMethod that describes the encryption algorithm applied to the cipher data. If the element is absent, the encryption algorithm must be known by the recipient or the decryption will fail.
Returns:the method used to encrypt the cipher data.
/** * Returns an <code>EncryptionMethod</code> that describes the encryption * algorithm applied to the cipher data. If the element is absent, the * encryption algorithm must be known by the recipient or the decryption * will fail. * * @return the method used to encrypt the cipher data. */
EncryptionMethod getEncryptionMethod();
Sets the EncryptionMethod used to encrypt the cipher data.
Params:
  • method – the EncryptionMethod.
/** * Sets the <code>EncryptionMethod</code> used to encrypt the cipher data. * * @param method the <code>EncryptionMethod</code>. */
void setEncryptionMethod(EncryptionMethod method);
Returns the ds:KeyInfo, that carries information about the key used to encrypt the data. Subsequent sections of this specification define new elements that may appear as children of ds:KeyInfo.
Returns:information about the key that encrypted the cipher data.
/** * Returns the <code>ds:KeyInfo</code>, that carries information about the * key used to encrypt the data. Subsequent sections of this specification * define new elements that may appear as children of * <code>ds:KeyInfo</code>. * * @return information about the key that encrypted the cipher data. */
KeyInfo getKeyInfo();
Sets the encryption key information.
Params:
  • info – the ds:KeyInfo, that carries information about the key used to encrypt the data.
/** * Sets the encryption key information. * * @param info the <code>ds:KeyInfo</code>, that carries information about * the key used to encrypt the data. */
void setKeyInfo(KeyInfo info);
Returns the CipherReference that contains the CipherValue or CipherReference with the encrypted data.
Returns:the cipher data for the encrypted type.
/** * Returns the <code>CipherReference</code> that contains the * <code>CipherValue</code> or <code>CipherReference</code> with the * encrypted data. * * @return the cipher data for the encrypted type. */
CipherData getCipherData();
Returns additional information concerning the generation of the EncryptedType.
Returns:information relating to the generation of the EncryptedType.
/** * Returns additional information concerning the generation of the * <code>EncryptedType</code>. * * @return information relating to the generation of the * <code>EncryptedType</code>. */
EncryptionProperties getEncryptionProperties();
Sets the EncryptionProperties that supplies additional information about the generation of the EncryptedType.
@paramproperties.
/** * Sets the <code>EncryptionProperties</code> that supplies additional * information about the generation of the <code>EncryptedType</code>. * * @param properties. */
void setEncryptionProperties(EncryptionProperties properties); }