Skip to content

Commit

Permalink
Doing a better bytes comparison in some of JAXRS OAuth2/Jose code
Browse files Browse the repository at this point in the history
  • Loading branch information
sberyozkin committed Dec 30, 2016
1 parent 23cc548 commit e66ce23
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
Expand Up @@ -18,8 +18,8 @@
*/
package org.apache.cxf.rs.security.jose.jwe;

import java.security.MessageDigest;
import java.security.spec.AlgorithmParameterSpec;
import java.util.Arrays;

import javax.crypto.spec.IvParameterSpec;

Expand Down Expand Up @@ -56,7 +56,7 @@ protected void validateAuthenticationTag(JweDecryptionInput jweDecryptionInput,
jweDecryptionInput.getDecodedJsonHeaders());
macState.mac.update(jweDecryptionInput.getEncryptedContent());
byte[] expectedAuthTag = AesCbcHmacJweEncryption.signAndGetTag(macState);
if (!Arrays.equals(actualAuthTag, expectedAuthTag)) {
if (!MessageDigest.isEqual(actualAuthTag, expectedAuthTag)) {
LOG.warning("Invalid authentication tag");
throw new JweException(JweException.Error.CONTENT_DECRYPTION_FAILURE);
}
Expand Down
Expand Up @@ -18,8 +18,8 @@
*/
package org.apache.cxf.rs.security.jose.jws;

import java.security.MessageDigest;
import java.security.spec.AlgorithmParameterSpec;
import java.util.Arrays;
import java.util.logging.Logger;

import org.apache.cxf.common.logging.LogUtils;
Expand Down Expand Up @@ -53,7 +53,7 @@ public HmacJwsSignatureVerifier(byte[] key, AlgorithmParameterSpec spec, Signatu
@Override
public boolean verify(JwsHeaders headers, String unsignedText, byte[] signature) {
byte[] expected = computeMac(headers, unsignedText);
return Arrays.equals(expected, signature);
return MessageDigest.isEqual(expected, signature);
}

private byte[] computeMac(JwsHeaders headers, String text) {
Expand Down
Expand Up @@ -19,7 +19,7 @@
package org.apache.cxf.rs.security.oauth2.tokens.hawk;

import java.net.URI;
import java.util.Arrays;
import java.security.MessageDigest;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
Expand Down Expand Up @@ -78,7 +78,7 @@ public AccessTokenValidation validateAccessToken(MessageContext mc,

String clientMacString = schemeParams.get(OAuthConstants.HAWK_TOKEN_SIGNATURE);
byte[] clientMacData = Base64Utility.decode(clientMacString);
boolean validMac = Arrays.equals(serverMacData, clientMacData);
boolean validMac = MessageDigest.isEqual(serverMacData, clientMacData);
if (!validMac) {
AuthorizationUtils.throwAuthorizationFailure(Collections
.singleton(OAuthConstants.HAWK_AUTHORIZATION_SCHEME));
Expand Down

0 comments on commit e66ce23

Please sign in to comment.