org.apache.xml.security.encryption.EncryptedType Maven / Gradle / Ivy
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.xml.security.encryption;
import org.apache.xml.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:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* @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.
*
* @return the id for the EncryptedType
.
*/
String getId();
/**
* 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.
*
* @return the identifier for the type of information in plaintext form of
* encrypted content.
*/
String getType();
/**
* Sets the type.
*
* @param type an URI
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.
*
* @return the media type of the data which was encrypted.
*/
String getMimeType();
/**
* Sets the mime type.
*
* @param type a String
which describes the media type of the
* data which has been encrypted.
*/
void setMimeType(String type);
/**
* Return an URI
representing the encoding of the
* EncryptedType
.
*
* @return the encoding of this EncryptedType
.
*/
String getEncoding();
/**
* Sets the URI
representing the encoding of the
* EncryptedType
.
*
* @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.
*
* @return the method used to encrypt the cipher data.
*/
EncryptionMethod getEncryptionMethod();
/**
* Sets the EncryptionMethod
used to encrypt the cipher data.
*
* @param method the EncryptionMethod
.
*/
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
.
*
* @return information about the key that encrypted the cipher data.
*/
KeyInfo getKeyInfo();
/**
* Sets the encryption key information.
*
* @param info the ds:KeyInfo
, 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.
*
* @return the cipher data for the encrypted type.
*/
CipherData getCipherData();
/**
* Returns additional information concerning the generation of the
* EncryptedType
.
*
* @return information relating to the generation of the
* EncryptedType
.
*/
EncryptionProperties getEncryptionProperties();
/**
* Sets the EncryptionProperties
that supplies additional
* information about the generation of the EncryptedType
.
*
* @param properties
*/
void setEncryptionProperties(EncryptionProperties properties);
}