summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarun Gupta <tarun1995gupta@gmail.com>2015-06-02 15:57:26 (GMT)
committerTarun Gupta <tarun1995gupta@gmail.com>2015-06-14 13:25:54 (GMT)
commitda6b027a42d980cd918e299b2b0a1e9f7f0c9caa (patch)
tree5c222d48ade235766c72be909e46ca5366784e16 /src/com/isode/stroke/network
parentd90c2cadb3d1bb2b849a448d3482b504bc4706bb (diff)
downloadstroke-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.java90
-rw-r--r--src/com/isode/stroke/network/JavaNetworkFactories.java1
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;