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 import java.util.Iterator; 26 import org.w3c.dom.Element; 27 28 /** 29 * <code>EncryptionMethod</code> describes the encryption algorithm applied to 30 * the cipher data. If the element is absent, the encryption algorithm must be 31 * known by the recipient or the decryption will fail. 32 * <p> 33 * It is defined as follows: 34 * <xmp> 35 * <complexType name='EncryptionMethodType' mixed='true'> 36 * <sequence> 37 * <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/> 38 * <element name='OAEPparams' minOccurs='0' type='base64Binary'/> 39 * <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> 40 * </sequence> 41 * <attribute name='Algorithm' type='anyURI' use='required'/> 42 * </complexType> 43 * </xmp> 44 * 45 * @author Axl Mattheus 46 */ 47 public interface EncryptionMethod { 48 /** 49 * Returns the algorithm applied to the cipher data. 50 * 51 * @return the encryption algorithm. 52 */ 53 String getAlgorithm(); 54 55 /** 56 * Returns the key size of the key of the algorithm applied to the cipher 57 * data. 58 * 59 * @return the key size. 60 */ 61 int getKeySize(); 62 63 /** 64 * Sets the size of the key of the algorithm applied to the cipher data. 65 * 66 * @param size the key size. 67 */ 68 void setKeySize(int size); 69 70 /** 71 * Returns the OAEP parameters of the algorithm applied to the 72 * cipher data. 73 * 74 * @return the OAEP parameters. 75 */ 76 byte[] getOAEPparams(); 77 78 /** 79 * Sets the OAEP parameters. 80 * 81 * @param parameters the OAEP parameters. 82 */ 83 void setOAEPparams(byte[] parameters); 84 85 /** 86 * Set the Digest Algorithm to use 87 * @param digestAlgorithm the Digest Algorithm to use 88 */ 89 void setDigestAlgorithm(String digestAlgorithm); 90 91 /** 92 * Get the Digest Algorithm to use 93 * @return the Digest Algorithm to use 94 */ 95 String getDigestAlgorithm(); 96 97 /** 98 * Set the MGF Algorithm to use 99 * @param mgfAlgorithm the MGF Algorithm to use 100 */ 101 void setMGFAlgorithm(String mgfAlgorithm); 102 103 /** 104 * Get the MGF Algorithm to use 105 * @return the MGF Algorithm to use 106 */ 107 String getMGFAlgorithm(); 108 109 /** 110 * Returns an iterator over all the additional elements contained in the 111 * <code>EncryptionMethod</code>. 112 * 113 * @return an <code>Iterator</code> over all the additional information 114 * about the <code>EncryptionMethod</code>. 115 */ 116 Iterator<Element> getEncryptionMethodInformation(); 117 118 /** 119 * Adds encryption method information. 120 * 121 * @param information additional encryption method information. 122 */ 123 void addEncryptionMethodInformation(Element information); 124 125 /** 126 * Removes encryption method information. 127 * 128 * @param information the information to remove from the 129 * <code>EncryptionMethod</code>. 130 */ 131 void removeEncryptionMethodInformation(Element information); 132 }