< prev index next >

src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/encryption/CipherReference.java

Print this page




   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 import org.w3c.dom.Attr;
  26 
  27 /**
  28  * <code>CipherReference</code> identifies a source which, when processed,
  29  * yields the encrypted octet sequence.
  30  * <p>
  31  * The actual value is obtained as follows. The <code>CipherReference URI</code>
  32  * contains an identifier that is dereferenced. Should the
  33  * Transforms, the data resulting from dereferencing the <code>URI</code> is
  34  * transformed as specified so as to yield the intended cipher value. For
  35  * example, if the value is base64 encoded within an XML document; the
  36  * transforms could specify an XPath expression followed by a base64 decoding so
  37  * as to extract the octets.
  38  * <p>
  39  * The syntax of the <code>URI</code> and Transforms is similar to that of
  40  * [XML-DSIG]. However, there is a difference between signature and encryption
  41  * processing. In [XML-DSIG] both generation and validation processing start
  42  * with the same source data and perform that transform in the same order. In
  43  * encryption, the decryptor has only the cipher data and the specified
  44  * transforms are enumerated for the decryptor, in the order necessary to obtain
  45  * the octets. Consequently, because it has different semantics Transforms is in
  46  * the &xenc; namespace.
  47  * <p>
  48  * The schema definition is as follows:
  49  * <xmp>
  50  * <element name='CipherReference' type='xenc:CipherReferenceType'/>
  51  * <complexType name='CipherReferenceType'>
  52  *     <sequence>
  53  *         <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>
  54  *     </sequence>
  55  *     <attribute name='URI' type='anyURI' use='required'/>
  56  * </complexType>
  57  * </xmp>
  58  *
  59  * @author Axl Mattheus
  60  */
  61 public interface CipherReference {
  62     /**
  63      * Returns an <code>URI</code> that contains an identifier that should be
  64      * dereferenced.
  65      * @return an <code>URI</code> that contains an identifier that should be
  66      * dereferenced.
  67      */
  68     String getURI();
  69 
  70     /**
  71      * Gets the URI as an Attribute node.  Used to meld the CipherReference
  72      * with the XMLSignature ResourceResolvers
  73      * @return the URI as an Attribute node
  74      */
  75     Attr getURIAsAttr();
  76 
  77     /**
  78      * Returns the <code>Transforms</code> that specifies how to transform the
  79      * <code>URI</code> to yield the appropriate cipher value.
  80      *
  81      * @return the transform that specifies how to transform the reference to
  82      *   yield the intended cipher value.
  83      */
  84     Transforms getTransforms();
  85 
  86     /**
  87      * Sets the <code>Transforms</code> that specifies how to transform the
  88      * <code>URI</code> to yield the appropriate cipher value.
  89      *
  90      * @param transforms the set of <code>Transforms</code> that specifies how
  91      *   to transform the reference to yield the intended cipher value.
  92      */
  93     void setTransforms(Transforms transforms);
  94 }
  95 


   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 import org.w3c.dom.Attr;
  26 
  27 /**
  28  * {@code CipherReference} identifies a source which, when processed,
  29  * yields the encrypted octet sequence.
  30  * <p>
  31  * The actual value is obtained as follows. The {@code CipherReference URI}
  32  * contains an identifier that is dereferenced. Should the
  33  * Transforms, the data resulting from dereferencing the {@code URI} is
  34  * transformed as specified so as to yield the intended cipher value. For
  35  * example, if the value is base64 encoded within an XML document; the
  36  * transforms could specify an XPath expression followed by a base64 decoding so
  37  * as to extract the octets.
  38  * <p>
  39  * The syntax of the {@code URI} and Transforms is similar to that of
  40  * [XML-DSIG]. However, there is a difference between signature and encryption
  41  * processing. In [XML-DSIG] both generation and validation processing start
  42  * with the same source data and perform that transform in the same order. In
  43  * encryption, the decryptor has only the cipher data and the specified
  44  * transforms are enumerated for the decryptor, in the order necessary to obtain
  45  * the octets. Consequently, because it has different semantics Transforms is in
  46  * the &xenc; namespace.
  47  * <p>
  48  * The schema definition is as follows:
  49  * <pre>{@code
  50  * <element name='CipherReference' type='xenc:CipherReferenceType'/>
  51  * <complexType name='CipherReferenceType'>
  52  *     <sequence>
  53  *         <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>
  54  *     </sequence>
  55  *     <attribute name='URI' type='anyURI' use='required'/>
  56  * </complexType>
  57  * }</pre>
  58  *
  59  * @author Axl Mattheus
  60  */
  61 public interface CipherReference {
  62     /**
  63      * Returns an {@code URI} that contains an identifier that should be
  64      * dereferenced.
  65      * @return an {@code URI} that contains an identifier that should be
  66      * dereferenced.
  67      */
  68     String getURI();
  69 
  70     /**
  71      * Gets the URI as an Attribute node.  Used to meld the CipherReference
  72      * with the XMLSignature ResourceResolvers
  73      * @return the URI as an Attribute node
  74      */
  75     Attr getURIAsAttr();
  76 
  77     /**
  78      * Returns the {@code Transforms} that specifies how to transform the
  79      * {@code URI} to yield the appropriate cipher value.
  80      *
  81      * @return the transform that specifies how to transform the reference to
  82      *   yield the intended cipher value.
  83      */
  84     Transforms getTransforms();
  85 
  86     /**
  87      * Sets the {@code Transforms} that specifies how to transform the
  88      * {@code URI} to yield the appropriate cipher value.
  89      *
  90      * @param transforms the set of {@code Transforms} that specifies how
  91      *   to transform the reference to yield the intended cipher value.
  92      */
  93     void setTransforms(Transforms transforms);
  94 }
  95 
< prev index next >