gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService クラス
org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService の継承関係図
Inheritance graph
org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService 連携図
Collaboration graph

公開メンバ関数

void init (TOTPConfig conf, String issuer)
 
byte [] generateSecretKey ()
 
String generateSecretKeyUri (byte[] secretKey, String displayName)
 
String getExternalUid (byte[] secretKey, String code)
 

非公開メンバ関数

boolean validateKey (byte[] secretKey, String otpCode)
 

非公開変数類

Logger logger
 
TOTPConfig conf
 
String issuer
 
HmacShaAlgorithm hmacShaAlgorithm
 

詳解

Created by jgomer on 2018-06-28. An app. scoped bean that encapsulates logic related to generating and validating OTP keys. See https://tools.ietf.org/html/rfc6238 and https://tools.ietf.org/html/rfc4226.

関数詳解

◆ generateSecretKey()

byte [] org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.generateSecretKey ( )
inline

org.gluu.credmanager.plugins.authnmethod.service.otp.IOTPAlgorithmを実装しています。

49  {
50  return Utils.randomBytes(conf.getKeyLength());
51  }
TOTPConfig conf
Definition: TOTPAlgorithmService.java:37
int getKeyLength()
Definition: BaseOTPConfig.java:16

◆ generateSecretKeyUri()

String org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.generateSecretKeyUri ( byte []  secretKey,
String  displayName 
)
inline

org.gluu.credmanager.plugins.authnmethod.service.otp.IOTPAlgorithmを実装しています。

53  {
54 
55  String secretKeyBase32 = BaseEncoding.base32().omitPadding().encode(secretKey);
56  OTPKey otpKey = new OTPKey(secretKeyBase32, OTPType.TOTP);
57 
58  OTPAuthURIBuilder uribe = OTPAuthURIBuilder.fromKey(otpKey).label(displayName);
59  uribe = uribe.issuer(issuer).digits(conf.getDigits());
60  uribe = uribe.timeStep(TimeUnit.SECONDS.toMillis(conf.getTimeStep()));
61 
62  logger.trace("Generating secret key URI");
63  return uribe.build().toUriString();
64 
65  }
TOTPConfig conf
Definition: TOTPAlgorithmService.java:37

◆ getExternalUid()

String org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.getExternalUid ( byte []  secretKey,
String  code 
)
inline

org.gluu.credmanager.plugins.authnmethod.service.otp.IOTPAlgorithmを実装しています。

67  {
68 
69  return validateKey(secretKey, code)
70  ? String.format("%s:%s", OTPType.TOTP.getName().toLowerCase(), BaseEncoding.base64Url().encode(secretKey))
71  : null;
72  }
boolean validateKey(byte[] secretKey, String otpCode)
Definition: TOTPAlgorithmService.java:74

◆ init()

void org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.init ( TOTPConfig  conf,
String  issuer 
)
inline
43  {
44  this.issuer = issuer;
45  this.conf = conf;
46  hmacShaAlgorithm = HmacShaAlgorithm.from("Hmac" + conf.getHmacShaAlgorithm().toUpperCase());
47  }
String getHmacShaAlgorithm()
Definition: TOTPConfig.java:23
TOTPConfig conf
Definition: TOTPAlgorithmService.java:37
HmacShaAlgorithm hmacShaAlgorithm
Definition: TOTPAlgorithmService.java:41

◆ validateKey()

boolean org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.validateKey ( byte []  secretKey,
String  otpCode 
)
inlineprivate
74  {
75  TOTPBuilder builder = TOTP.key(secretKey).digits(conf.getDigits()).hmacSha(hmacShaAlgorithm);
76  String localTotpKey = builder.timeStep(TimeUnit.SECONDS.toMillis(conf.getTimeStep())).build().value();
77  return otpCode.equals(localTotpKey);
78  }
TOTPConfig conf
Definition: TOTPAlgorithmService.java:37
HmacShaAlgorithm hmacShaAlgorithm
Definition: TOTPAlgorithmService.java:41

メンバ詳解

◆ conf

TOTPConfig org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.conf
private

◆ hmacShaAlgorithm

HmacShaAlgorithm org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.hmacShaAlgorithm
private

◆ issuer

String org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.issuer
private

◆ logger

Logger org.gluu.credmanager.plugins.authnmethod.service.otp.TOTPAlgorithmService.logger
private

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