Introduce JwaAlgorithm

Closes gh-9182
This commit is contained in:
Joe Grandja 2020-11-03 12:12:09 -05:00
parent c069692ab9
commit 0c25b8c1f9
2 changed files with 46 additions and 4 deletions

View File

@ -0,0 +1,41 @@
/*
* Copyright 2002-2020 the original author or authors.
*
* Licensed 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
*
* https://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.springframework.security.oauth2.jose;
/**
* Super interface for cryptographic algorithms defined by the JSON Web Algorithms (JWA)
* specification and used by JSON Web Signature (JWS) to digitally sign or create a MAC of
* the contents and JSON Web Encryption (JWE) to encrypt the contents.
*
* @author Joe Grandja
* @since 5.5
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7518">JSON Web Algorithms
* (JWA)</a>
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7515">JSON Web Signature
* (JWS)</a>
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7516">JSON Web Encryption
* (JWE)</a>
*/
public interface JwaAlgorithm {
/**
* Returns the algorithm name.
* @return the algorithm name
*/
String getName();
}

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -16,6 +16,8 @@
package org.springframework.security.oauth2.jose.jws; package org.springframework.security.oauth2.jose.jws;
import org.springframework.security.oauth2.jose.JwaAlgorithm;
/** /**
* Super interface for cryptographic algorithms defined by the JSON Web Algorithms (JWA) * Super interface for cryptographic algorithms defined by the JSON Web Algorithms (JWA)
* specification and used by JSON Web Signature (JWS) to digitally sign or create a MAC of * specification and used by JSON Web Signature (JWS) to digitally sign or create a MAC of
@ -23,6 +25,7 @@ package org.springframework.security.oauth2.jose.jws;
* *
* @author Joe Grandja * @author Joe Grandja
* @since 5.2 * @since 5.2
* @see JwaAlgorithm
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7518">JSON Web Algorithms * @see <a target="_blank" href="https://tools.ietf.org/html/rfc7518">JSON Web Algorithms
* (JWA)</a> * (JWA)</a>
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7515">JSON Web Signature * @see <a target="_blank" href="https://tools.ietf.org/html/rfc7515">JSON Web Signature
@ -31,8 +34,6 @@ package org.springframework.security.oauth2.jose.jws;
* "https://tools.ietf.org/html/rfc7518#section-3">Cryptographic Algorithms for Digital * "https://tools.ietf.org/html/rfc7518#section-3">Cryptographic Algorithms for Digital
* Signatures and MACs</a> * Signatures and MACs</a>
*/ */
public interface JwsAlgorithm { public interface JwsAlgorithm extends JwaAlgorithm {
String getName();
} }