1 /*
2 * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package org.opensaml.xml.signature;
18
19 import java.util.List;
20
21 import javax.xml.namespace.QName;
22
23 import org.opensaml.xml.XMLObject;
24 import org.opensaml.xml.security.credential.Credential;
25 import org.opensaml.xml.util.XMLConstants;
26
27 /**
28 * XMLObject representing an enveloped or detached XML Digital Signature, version 20020212, Signature element.
29 */
30 public interface Signature extends XMLObject {
31
32 /** Element local name. */
33 public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Signature";
34
35 /** Default element name. */
36 public static final QName DEFAULT_ELEMENT_NAME = new QName(XMLConstants.XMLSIG_NS, DEFAULT_ELEMENT_LOCAL_NAME,
37 XMLConstants.XMLSIG_PREFIX);
38
39 /** Local name of the XSI type. */
40 public static final String TYPE_LOCAL_NAME = "SignatureType";
41
42 /** QName of the XSI type. */
43 public static final QName TYPE_NAME = new QName(XMLConstants.XMLSIG_NS, TYPE_LOCAL_NAME,
44 XMLConstants.XMLSIG_PREFIX);
45
46 /**
47 * Gets the canonicalization algorithm used to create the signature content.
48 *
49 * @return the canonicalization algorithm used to create the signature content
50 */
51 public String getCanonicalizationAlgorithm();
52
53 /**
54 * Sets the canonicalization algorithm used to create the signature content.
55 *
56 * @param newAlgorithm the canonicalization algorithm used to create the signature content
57 */
58 public void setCanonicalizationAlgorithm(String newAlgorithm);
59
60 /**
61 * Gets the algorithm used to compute the signature.
62 *
63 * @return the algorithm used to compute the signature
64 */
65 public String getSignatureAlgorithm();
66
67 /**
68 * Sets the algorithm used to compute the signature.
69 *
70 * @param newAlgorithm the algorithm used to compute the signature
71 */
72 public void setSignatureAlgorithm(String newAlgorithm);
73
74 /**
75 * Gets the HMAC output length value, optionally used when signing
76 * with an HMAC signature algorithm.
77 *
78 * @return the HMACOutputLength value
79 */
80 public Integer getHMACOutputLength();
81
82 /**
83 * Sets the HMAC output length value, optionally used when signing
84 * with an HMAC signature algorithm.
85 *
86 * @param length the new HMACOutputLength value
87 */
88 public void setHMACOutputLength(Integer length);
89
90 /**
91 * Gets the signature signing credential.
92 *
93 * @return the signature signing credential
94 */
95 public Credential getSigningCredential();
96
97 /**
98 * Sets the signature signing credential.
99 *
100 * @param newCredential the signature signing credential
101 */
102 public void setSigningCredential(Credential newCredential);
103
104 /**
105 * Gets the key info added to this signature.
106 *
107 * @return the key info added to this signature
108 */
109 public KeyInfo getKeyInfo();
110
111 /**
112 * Sets the key info added to this signature.
113 *
114 * @param newKeyInfo the key info added to this signature
115 */
116 public void setKeyInfo(KeyInfo newKeyInfo);
117
118 /**
119 * Gets the list of signature content references.
120 *
121 * @return the list of signature content references
122 */
123 public List<ContentReference> getContentReferences();
124 }