1 /*
   2  * reserved comment block
   3  * DO NOT REMOVE OR ALTER!
   4  */
   5 /**
   6  * Licensed to the Apache Software Foundation (ASF) under one
   7  * or more contributor license agreements. See the NOTICE file
   8  * distributed with this work for additional information
   9  * regarding copyright ownership. The ASF licenses this file
  10  * to you under the Apache License, Version 2.0 (the
  11  * "License"); you may not use this file except in compliance
  12  * with the License. You may obtain a copy of the License at
  13  *
  14  * http://www.apache.org/licenses/LICENSE-2.0
  15  *
  16  * Unless required by applicable law or agreed to in writing,
  17  * software distributed under the License is distributed on an
  18  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  19  * KIND, either express or implied. See the License for the
  20  * specific language governing permissions and limitations
  21  * under the License.
  22  */
  23 package com.sun.org.apache.xml.internal.security.encryption;
  24 
  25 /**
  26  * <code>CipherData</code> provides encrypted data. It must either contain the
  27  * encrypted octet sequence as base64 encoded text of the
  28  * <code>CipherValue</code> element, or provide a reference to an external
  29  * location containing the encrypted octet sequence via the
  30  * <code>CipherReference</code> element.
  31  * <p>
  32  * The schema definition is as follows:
  33  * <xmp>
  34  * <element name='CipherData' type='xenc:CipherDataType'/>
  35  * <complexType name='CipherDataType'>
  36  *     <choice>
  37  *         <element name='CipherValue' type='base64Binary'/>
  38  *         <element ref='xenc:CipherReference'/>
  39  *     </choice>
  40  * </complexType>
  41  * </xmp>
  42  *
  43  * @author Axl Mattheus
  44  */
  45 public interface CipherData {
  46     
  47     /** VALUE_TYPE ASN */
  48     int VALUE_TYPE = 0x00000001;
  49     
  50     /** REFERENCE_TYPE ASN */
  51     int REFERENCE_TYPE = 0x00000002;
  52 
  53     /**
  54      * Returns the type of encrypted data contained in the
  55      * <code>CipherData</code>.
  56      *
  57      * @return <code>VALUE_TYPE</code> if the encrypted data is contained as
  58      *   <code>CipherValue</code> or <code>REFERENCE_TYPE</code> if the
  59      *   encrypted data is contained as <code>CipherReference</code>.
  60      */
  61     int getDataType();
  62 
  63     /**
  64      * Returns the cipher value as a base64 encoded <code>byte</code> array.
  65      *
  66      * @return the <code>CipherData</code>'s value.
  67      */
  68     CipherValue getCipherValue();
  69 
  70     /**
  71      * Sets the <code>CipherData</code>'s value.
  72      *
  73      * @param value the value of the <code>CipherData</code>.
  74      * @throws XMLEncryptionException
  75      */
  76     void setCipherValue(CipherValue value) throws XMLEncryptionException;
  77 
  78     /**
  79      * Returns a reference to an external location containing the encrypted
  80      * octet sequence (<code>byte</code> array).
  81      *
  82      * @return the reference to an external location containing the encrypted
  83      * octet sequence.
  84      */
  85     CipherReference getCipherReference();
  86 
  87     /**
  88      * Sets the <code>CipherData</code>'s reference.
  89      *
  90      * @param reference an external location containing the encrypted octet sequence.
  91      * @throws XMLEncryptionException
  92      */
  93     void setCipherReference(CipherReference reference) throws XMLEncryptionException;
  94 }
  95