gluu
静的公開メンバ関数 | 非公開メンバ関数 | 静的非公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
org.xdi.oxauth.model.crypto.binding.TokenBindingMessageParser クラス
org.xdi.oxauth.model.crypto.binding.TokenBindingMessageParser 連携図
Collaboration graph

静的公開メンバ関数

static List< TokenBindingparseBase64UrlEncoded (String base64UrlEncodedString) throws TokenBindingParseException
 
static List< TokenBindingparseBytes (byte[] raw) throws TokenBindingParseException
 

非公開メンバ関数

 TokenBindingMessageParser ()
 

静的非公開メンバ関数

static byte [] readBytesWithSuffixLength (ByteArrayInputStream stream)
 

静的非公開変数類

static final Logger log = Logger.getLogger(TokenBindingMessageParser.class)
 

詳解

著者
Yuriy Zabrovarnyy

構築子と解体子

◆ TokenBindingMessageParser()

org.xdi.oxauth.model.crypto.binding.TokenBindingMessageParser.TokenBindingMessageParser ( )
inlineprivate
20  {
21  }

関数詳解

◆ parseBase64UrlEncoded()

static List<TokenBinding> org.xdi.oxauth.model.crypto.binding.TokenBindingMessageParser.parseBase64UrlEncoded ( String  base64UrlEncodedString) throws TokenBindingParseException
inlinestatic
23  {
24  return parseBytes(Base64Util.base64urldecode(base64UrlEncodedString));
25  }
static List< TokenBinding > parseBytes(byte[] raw)
Definition: TokenBindingMessageParser.java:27

◆ parseBytes()

static List<TokenBinding> org.xdi.oxauth.model.crypto.binding.TokenBindingMessageParser.parseBytes ( byte []  raw) throws TokenBindingParseException
inlinestatic
27  {
28  try {
29  int length = ByteUtils.twoBytesAsInt(raw[0], raw[1]);
30 
31  if (length != (raw.length - 2)) {
32  log.error("Invalid token binding message. First two bytes length value: " + length + "does not match actual bytes length: " + raw.length);
33  throw new TokenBindingParseException("Invalid token binding message. First two bytes length value does not match actual bytes length.");
34  }
35 
36  List<TokenBinding> result = new ArrayList<TokenBinding>();
37 
38  TokenBindingStream stream = new TokenBindingStream(raw, 2, raw.length);
39  Preconditions.checkState(stream.getPos() == 2);
40 
41  while (stream.available() > 0) {
42  int tokenTypeAsByteValue = stream.read();
43 
44  TokenBindingType tokenBindingType = TokenBindingType.valueOf(tokenTypeAsByteValue);
45  if (tokenBindingType == null) {
46  throw new TokenBindingParseException("Failed to identify TokenBindingType, byteValue: " + tokenTypeAsByteValue);
47  }
48 
49  int fromID = stream.getPos();
50  int keyParametersAsByteValue = stream.read();
51 
52  TokenBindingKeyParameters tokenBindingKeyParameters = TokenBindingKeyParameters.valueOf(keyParametersAsByteValue);
53  if (tokenBindingKeyParameters == null) {
54  throw new TokenBindingParseException("Failed to identify TokenBindingKeyParameters, byteValue: " + keyParametersAsByteValue);
55  }
56 
57  byte[] publicKey = readBytesWithSuffixLength(stream);
58  byte[] bindingIdRaw = Arrays.copyOfRange(raw, fromID, stream.getPos());
59 
60  byte[] signature = readBytesWithSuffixLength(stream);
61  byte[] extensions = readBytesWithSuffixLength(stream);
62 
63  TokenBindingID id = new TokenBindingID(tokenBindingKeyParameters, publicKey, bindingIdRaw);
64 
65  result.add(new TokenBinding(tokenBindingType, id, signature, new TokenBindingExtension(TokenBindingExtensionType.UNKNOWN, extensions)));
66  }
67  return result;
68  } catch (Exception e) {
69  throw new TokenBindingParseException("Failed to parse TokenBindingMessage, raw: " + Base64Util.base64urlencode(raw), e);
70  }
71  }
static final Logger log
Definition: TokenBindingMessageParser.java:18
static byte [] readBytesWithSuffixLength(ByteArrayInputStream stream)
Definition: TokenBindingMessageParser.java:73

◆ readBytesWithSuffixLength()

static byte [] org.xdi.oxauth.model.crypto.binding.TokenBindingMessageParser.readBytesWithSuffixLength ( ByteArrayInputStream  stream)
inlinestaticprivate
73  {
74  int length = ByteUtils.twoIntsAsInt(stream.read(), stream.read());
75 
76  byte[] data = new byte[length];
77  stream.read(data, 0, length);
78  return data;
79  }

メンバ詳解

◆ log

final Logger org.xdi.oxauth.model.crypto.binding.TokenBindingMessageParser.log = Logger.getLogger(TokenBindingMessageParser.class)
staticprivate

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