All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.xml.security.encryption.EncryptedType Maven / Gradle / Ivy

Go to download

Apache XML Security for Java supports XML-Signature Syntax and Processing, W3C Recommendation 12 February 2002, and XML Encryption Syntax and Processing, W3C Recommendation 10 December 2002. As of version 1.4, the library supports the standard Java API JSR-105: XML Digital Signature APIs.

There is a newer version: 4.0.2
Show newest version
/**
 * 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: *

* <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 */ 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); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy