diff --git a/src/main/java/com/cringe_studios/cringe_authenticator_library/impl/HOTP.java b/src/main/java/com/cringe_studios/cringe_authenticator_library/impl/HOTP.java index 3d94cc6..d4d8643 100644 --- a/src/main/java/com/cringe_studios/cringe_authenticator_library/impl/HOTP.java +++ b/src/main/java/com/cringe_studios/cringe_authenticator_library/impl/HOTP.java @@ -60,7 +60,9 @@ public class HOTP extends OTP { // compute hmac hash - byte[] hash = this.getAlgorithm().hash(secret, text); + byte[] hashIncorrectLength = this.getAlgorithm().hash(secret, text); + byte[] hash = new byte[160 >> 3 > hashIncorrectLength.length ? 160 >> 3 : hashIncorrectLength.length]; + System.arraycopy(hashIncorrectLength, 0, hash, 0, hash.length < hashIncorrectLength.length ? hash.length : hashIncorrectLength.length); // put selected bytes into result int int offset = hash[hash.length - 1] & 0xf;