keycloak
公開メンバ関数 | 静的公開メンバ関数 | 静的非公開メンバ関数 | 全メンバ一覧
org.keycloak.jose.jws.crypto.HMACProvider クラス
org.keycloak.jose.jws.crypto.HMACProvider の継承関係図
Inheritance graph
org.keycloak.jose.jws.crypto.HMACProvider 連携図
Collaboration graph

公開メンバ関数

boolean verify (JWSInput input, String key)
 

静的公開メンバ関数

static byte [] sign (byte[] data, Algorithm algorithm, byte[] sharedSecret)
 
static byte [] sign (byte[] data, Algorithm algorithm, SecretKey key)
 
static boolean verify (JWSInput input, SecretKey key)
 
static boolean verify (JWSInput input, byte[] sharedSecret)
 

静的非公開メンバ関数

static String getJavaAlgorithm (Algorithm alg)
 
static Mac getMAC (final Algorithm alg)
 

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ getJavaAlgorithm()

static String org.keycloak.jose.jws.crypto.HMACProvider.getJavaAlgorithm ( Algorithm  alg)
inlinestaticprivate
36  {
37  switch (alg) {
38  case HS256:
39  return "HMACSHA256";
40  case HS384:
41  return "HMACSHA384";
42  case HS512:
43  return "HMACSHA512";
44  default:
45  throw new IllegalArgumentException("Not a MAC Algorithm");
46  }
47  }

◆ getMAC()

static Mac org.keycloak.jose.jws.crypto.HMACProvider.getMAC ( final Algorithm  alg)
inlinestaticprivate
49  {
50 
51  try {
52  return Mac.getInstance(getJavaAlgorithm(alg));
53 
54  } catch (NoSuchAlgorithmException e) {
55 
56  throw new RuntimeException("Unsupported HMAC algorithm: " + e.getMessage(), e);
57  }
58  }
static String getJavaAlgorithm(Algorithm alg)
Definition: HMACProvider.java:36

◆ sign() [1/2]

static byte [] org.keycloak.jose.jws.crypto.HMACProvider.sign ( byte []  data,
Algorithm  algorithm,
byte []  sharedSecret 
)
inlinestatic
60  {
61  try {
62  Mac mac = getMAC(algorithm);
63  mac.init(new SecretKeySpec(sharedSecret, mac.getAlgorithm()));
64  mac.update(data);
65  return mac.doFinal();
66  } catch (Exception e) {
67  throw new RuntimeException(e);
68  }
69  }
static Mac getMAC(final Algorithm alg)
Definition: HMACProvider.java:49

◆ sign() [2/2]

static byte [] org.keycloak.jose.jws.crypto.HMACProvider.sign ( byte []  data,
Algorithm  algorithm,
SecretKey  key 
)
inlinestatic
71  {
72  try {
73  Mac mac = getMAC(algorithm);
74  mac.init(key);
75  mac.update(data);
76  return mac.doFinal();
77  } catch (Exception e) {
78  throw new RuntimeException(e);
79  }
80  }
static Mac getMAC(final Algorithm alg)
Definition: HMACProvider.java:49

◆ verify() [1/3]

static boolean org.keycloak.jose.jws.crypto.HMACProvider.verify ( JWSInput  input,
SecretKey  key 
)
inlinestatic
82  {
83  try {
84  byte[] signature = sign(input.getEncodedSignatureInput().getBytes("UTF-8"), input.getHeader().getAlgorithm(), key);
85  return MessageDigest.isEqual(signature, Base64Url.decode(input.getEncodedSignature()));
86  } catch (Exception e) {
87  throw new RuntimeException(e);
88  }
89  }
static byte [] sign(byte[] data, Algorithm algorithm, byte[] sharedSecret)
Definition: HMACProvider.java:60

◆ verify() [2/3]

static boolean org.keycloak.jose.jws.crypto.HMACProvider.verify ( JWSInput  input,
byte []  sharedSecret 
)
inlinestatic
92  {
93  try {
94  byte[] signature = sign(input.getEncodedSignatureInput().getBytes("UTF-8"), input.getHeader().getAlgorithm(), sharedSecret);
95  return MessageDigest.isEqual(signature, Base64Url.decode(input.getEncodedSignature()));
96  } catch (Exception e) {
97  throw new RuntimeException(e);
98  }
99  }
static byte [] sign(byte[] data, Algorithm algorithm, byte[] sharedSecret)
Definition: HMACProvider.java:60

◆ verify() [3/3]

boolean org.keycloak.jose.jws.crypto.HMACProvider.verify ( JWSInput  input,
String  key 
)
inline

org.keycloak.jose.jws.crypto.SignatureProviderを実装しています。

102  {
103  return false;
104  }

このクラス詳解は次のファイルから抽出されました: