keycloak
公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 非公開メンバ関数 | 静的非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.jose.jwk.JWKBuilder クラス
org.keycloak.jose.jwk.JWKBuilder 連携図
Collaboration graph

公開メンバ関数

JWKBuilder kid (String kid)
 
JWKBuilder algorithm (String algorithm)
 
JWK rs256 (PublicKey key)
 
JWK rsa (Key key)
 
JWK ec (Key key)
 

静的公開メンバ関数

static JWKBuilder create ()
 

静的公開変数類

static final String DEFAULT_PUBLIC_KEY_USE = "sig"
 

非公開メンバ関数

 JWKBuilder ()
 

静的非公開メンバ関数

static byte [] toIntegerBytes (final BigInteger bigInt)
 

非公開変数類

String kid
 
String algorithm
 

詳解

著者
Stian Thorgersen

構築子と解体子

◆ JWKBuilder()

org.keycloak.jose.jwk.JWKBuilder.JWKBuilder ( )
inlineprivate
42  {
43  }

関数詳解

◆ algorithm()

JWKBuilder org.keycloak.jose.jwk.JWKBuilder.algorithm ( String  algorithm)
inline
54  {
55  this.algorithm = algorithm;
56  return this;
57  }
String algorithm
Definition: JWKBuilder.java:40

◆ create()

static JWKBuilder org.keycloak.jose.jwk.JWKBuilder.create ( )
inlinestatic
45  {
46  return new JWKBuilder();
47  }
JWKBuilder()
Definition: JWKBuilder.java:42

◆ ec()

JWK org.keycloak.jose.jwk.JWKBuilder.ec ( Key  key)
inline
81  {
82  ECPublicKey ecKey = (ECPublicKey) key;
83 
84  ECPublicJWK k = new ECPublicJWK();
85 
86  String kid = this.kid != null ? this.kid : KeyUtils.createKeyId(key);
87  k.setKeyId(kid);
88  k.setKeyType(KeyType.EC);
89  k.setAlgorithm(algorithm);
90  k.setPublicKeyUse(DEFAULT_PUBLIC_KEY_USE);
91  k.setCrv("P-" + ecKey.getParams().getCurve().getField().getFieldSize());
92  k.setX(Base64Url.encode(ecKey.getW().getAffineX().toByteArray()));
93  k.setY(Base64Url.encode(ecKey.getW().getAffineY().toByteArray()));
94 
95  return k;
96  }
String kid
Definition: JWKBuilder.java:38
String algorithm
Definition: JWKBuilder.java:40
static final String DEFAULT_PUBLIC_KEY_USE
Definition: JWKBuilder.java:36

◆ kid()

JWKBuilder org.keycloak.jose.jwk.JWKBuilder.kid ( String  kid)
inline
49  {
50  this.kid = kid;
51  return this;
52  }
String kid
Definition: JWKBuilder.java:38

◆ rs256()

JWK org.keycloak.jose.jwk.JWKBuilder.rs256 ( PublicKey  key)
inline
59  {
60  algorithm(Algorithm.RS256);
61  return rsa(key);
62  }
String algorithm
Definition: JWKBuilder.java:40
JWK rsa(Key key)
Definition: JWKBuilder.java:64

◆ rsa()

JWK org.keycloak.jose.jwk.JWKBuilder.rsa ( Key  key)
inline
64  {
65  RSAPublicKey rsaKey = (RSAPublicKey) key;
66 
67  RSAPublicJWK k = new RSAPublicJWK();
68 
69  String kid = this.kid != null ? this.kid : KeyUtils.createKeyId(key);
70  k.setKeyId(kid);
71  k.setKeyType(KeyType.RSA);
72  k.setAlgorithm(algorithm);
73  k.setPublicKeyUse(DEFAULT_PUBLIC_KEY_USE);
74  k.setModulus(Base64Url.encode(toIntegerBytes(rsaKey.getModulus())));
75  k.setPublicExponent(Base64Url.encode(toIntegerBytes(rsaKey.getPublicExponent())));
76 
77  return k;
78  }
String kid
Definition: JWKBuilder.java:38
String algorithm
Definition: JWKBuilder.java:40
static final String DEFAULT_PUBLIC_KEY_USE
Definition: JWKBuilder.java:36
static byte [] toIntegerBytes(final BigInteger bigInt)
Definition: JWKBuilder.java:101

◆ toIntegerBytes()

static byte [] org.keycloak.jose.jwk.JWKBuilder.toIntegerBytes ( final BigInteger  bigInt)
inlinestaticprivate

Copied from org.apache.commons.codec.binary.Base64

101  {
102  int bitlen = bigInt.bitLength();
103  // round bitlen
104  bitlen = ((bitlen + 7) >> 3) << 3;
105  final byte[] bigBytes = bigInt.toByteArray();
106 
107  if (((bigInt.bitLength() % 8) != 0) && (((bigInt.bitLength() / 8) + 1) == (bitlen / 8))) {
108  return bigBytes;
109  }
110  // set up params for copying everything but sign bit
111  int startSrc = 0;
112  int len = bigBytes.length;
113 
114  // if bigInt is exactly byte-aligned, just skip signbit in copy
115  if ((bigInt.bitLength() % 8) == 0) {
116  startSrc = 1;
117  len--;
118  }
119  final int startDst = bitlen / 8 - len; // to pad w/ nulls as per spec
120  final byte[] resizedBytes = new byte[bitlen / 8];
121  System.arraycopy(bigBytes, startSrc, resizedBytes, startDst, len);
122  return resizedBytes;
123  }

メンバ詳解

◆ algorithm

String org.keycloak.jose.jwk.JWKBuilder.algorithm
private

◆ DEFAULT_PUBLIC_KEY_USE

final String org.keycloak.jose.jwk.JWKBuilder.DEFAULT_PUBLIC_KEY_USE = "sig"
static

◆ kid

String org.keycloak.jose.jwk.JWKBuilder.kid
private

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