diff options
author | Tarun Gupta <tarun1995gupta@gmail.com> | 2015-06-02 15:57:26 (GMT) |
---|---|---|
committer | Tarun Gupta <tarun1995gupta@gmail.com> | 2015-06-14 13:25:54 (GMT) |
commit | da6b027a42d980cd918e299b2b0a1e9f7f0c9caa (patch) | |
tree | 5c222d48ade235766c72be909e46ca5366784e16 /src/com/isode/stroke/network | |
parent | d90c2cadb3d1bb2b849a448d3482b504bc4706bb (diff) | |
download | stroke-da6b027a42d980cd918e299b2b0a1e9f7f0c9caa.zip stroke-da6b027a42d980cd918e299b2b0a1e9f7f0c9caa.tar.bz2 |
Add support for Crypto-functions.
Completes the JavaCryptoProvider providing functionalities for SHA-1 Hash, MD5 Hash and HMACSHA1 Hash.
Also updates reference for JavaCryptoProvider in JavaNetworkFactories.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests are added for JavaCryptoProvider, which passes.
Change-Id: I2439e5fd76a23e9b5c4e9132a9856543a7ca53fd
Diffstat (limited to 'src/com/isode/stroke/network')
-rw-r--r-- | src/com/isode/stroke/network/JavaCryptoProvider.java | 90 | ||||
-rw-r--r-- | src/com/isode/stroke/network/JavaNetworkFactories.java | 1 |
2 files changed, 1 insertions, 90 deletions
diff --git a/src/com/isode/stroke/network/JavaCryptoProvider.java b/src/com/isode/stroke/network/JavaCryptoProvider.java deleted file mode 100644 index b7dff5d..0000000 --- a/src/com/isode/stroke/network/JavaCryptoProvider.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2011-2015 Isode Limited, London, England. - * All rights reserved. - */ -package com.isode.stroke.network; - -import java.security.InvalidKeyException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -import com.isode.stroke.base.ByteArray; -import com.isode.stroke.crypto.CryptoProvider; -import com.isode.stroke.crypto.Hash; -import com.isode.stroke.base.SafeByteArray; - -public class JavaCryptoProvider extends CryptoProvider { - - private static class HashProvider implements Hash { - private final MessageDigest digest; - - HashProvider(String algorithm) throws NoSuchAlgorithmException { - digest = MessageDigest.getInstance("SHA-1"); - } - - @Override - public Hash update(ByteArray data) { - digest.update(data.getData()); - return this; - } - - @Override - public Hash update(SafeByteArray data) { -// digest.update(data.getData()); - return this; - } - - @Override - public ByteArray getHash() { - return new ByteArray(digest.digest()); - } - - } - - @Override - public Hash createSHA1() { - try { - return new HashProvider("SHA-1"); - } catch (NoSuchAlgorithmException e) { - return null; - } - } - - @Override - public Hash createMD5() { - try { - return new HashProvider("MD5"); - } catch (NoSuchAlgorithmException e) { - return null; - } - } - -// @Override - public ByteArray getHMACSHA1(SafeByteArray key, ByteArray data) { - // TODO Auto-generated method stub - return null; - } - - @Override - public ByteArray getHMACSHA1(ByteArray key, ByteArray data) { - Mac mac; - try { - mac = Mac.getInstance("HmacSHA1"); - mac.init(new SecretKeySpec(key.getData(), mac.getAlgorithm())); - return new ByteArray(mac.doFinal(data.getData())); - } catch (NoSuchAlgorithmException e) { - return null; - } catch (InvalidKeyException e) { - return null; - } - } - - @Override - public boolean isMD5AllowedForCrypto() { - return false; - } - -} diff --git a/src/com/isode/stroke/network/JavaNetworkFactories.java b/src/com/isode/stroke/network/JavaNetworkFactories.java index 2276a2a..15860e0 100644 --- a/src/com/isode/stroke/network/JavaNetworkFactories.java +++ b/src/com/isode/stroke/network/JavaNetworkFactories.java @@ -5,6 +5,7 @@ package com.isode.stroke.network; import com.isode.stroke.crypto.CryptoProvider; +import com.isode.stroke.crypto.JavaCryptoProvider; import com.isode.stroke.eventloop.EventLoop; import com.isode.stroke.tls.PlatformTLSFactories; import com.isode.stroke.tls.TLSContextFactory; |