Skip to content

Commit

Permalink
Addressed PR comments
Browse files Browse the repository at this point in the history
  • Loading branch information
najmsheikh committed Jun 14, 2019
1 parent cee6ad8 commit cec4a96
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ final class AmazonCertificateProvider extends CertificateProvider {
private static final String[] HASHED_KEYS = {
"++MBgDH5WGvL9Bcn5Be30cRcL0f5O+NyoXuWtQdX1aI=",
"f0KW/FtqTjs108NpYj42SrGvOB2PpxIVM8nWxjPqJGE=",
"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
};
private static final Set<String> HASHED_KEYSET = new HashSet<>(Arrays.asList(HASHED_KEYS));
Expand Down Expand Up @@ -110,7 +109,21 @@ final class AmazonCertificateProvider extends CertificateProvider {
+ "ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr\n"
+ "BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM\n"
+ "YyRIHN8wfdVoOw==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----END CERTIFICATE-----\n",

"-----BEGIN CERTIFICATE-----\n"
+ "MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5\n"
+ "MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g\n"
+ "Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG\n"
+ "A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg\n"
+ "Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi\n"
+ "9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk\n"
+ "M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB\n"
+ "/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB\n"
+ "MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw\n"
+ "CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW\n"
+ "1KyLa2tJElMzrdfkviT8tQp21KW8EA==\n"
+ "-----END CERTIFICATE-----"
};

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ private static ButtonRepository getButtonRepository(Context context) {

CertificateProvider provider = new AmazonCertificateProvider();

SSLManager sslManager = SSLManagerImpl.getInstance(provider);
SSLManager sslManager = SSLManagerImpl.getInstance(provider, null);

ButtonApi buttonApi = ButtonApiImpl.getInstance(deviceManager.getUserAgent(), sslManager);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@

package com.usebutton.merchant;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;

Expand All @@ -41,7 +40,6 @@
import java.security.NoSuchAlgorithmException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.util.Arrays;
import java.util.List;

/**
Expand All @@ -60,27 +58,16 @@ class SSLManagerImpl implements SSLManager {
private final char[] password;
private final CertificateProvider provider;

static SSLManager getInstance(CertificateProvider provider) {
return getInstance(provider, null);
}

static SSLManager getInstance(CertificateProvider provider, char[] password) {
static SSLManager getInstance(CertificateProvider provider, @Nullable char[] password) {
if (instance == null) {
instance = new SSLManagerImpl(provider, password);
return instance;
}

boolean hasDiffPass = !Arrays.equals(password, ((SSLManagerImpl) instance).getPassword());
boolean hasDiffProv = ((SSLManagerImpl) instance).provider != provider;
if (hasDiffProv || hasDiffPass) {
instance = new SSLManagerImpl(provider, password);
}

return instance;
}

@VisibleForTesting
SSLManagerImpl(@NonNull CertificateProvider provider, @Nullable char[] password) {
SSLManagerImpl(CertificateProvider provider, @Nullable char[] password) {
this.password = password;
this.provider = provider;

Expand Down Expand Up @@ -108,14 +95,6 @@ public CertificateProvider getCertificateProvider() {
return provider;
}

List<Certificate> getCertificateChain() {
return certificates;
}

char[] getPassword() {
return password;
}

KeyStore getKeyStore(CertificateProvider provider)
throws CertificateException, KeyStoreException, IOException, NoSuchAlgorithmException {
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class CertificateProviderTest {
private CertificateProvider provider = new LocalCertificateProvider();

@Test
public void provider_shouldProvideValidCertificateChain() throws Exception {
public void getChain_shouldProvideValidCertificateChain() throws Exception {
List<Certificate> certificates = provider.getChain();

Certificate ca1 = certificates.get(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@

package com.usebutton.merchant;

import edu.emory.mathcs.backport.java.util.Arrays;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@
import java.security.cert.X509Certificate;
import java.util.Set;

import static junit.framework.Assert.assertNotSame;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertSame;
import static junit.framework.TestCase.assertTrue;

public class SSLManagerTest {
Expand Down Expand Up @@ -70,11 +70,11 @@ public void tearDown() throws Exception {
}

@Test
public void getInstance_shouldReturnNewInstanceOnChangedPassword() throws Exception {
SSLManager sslManager1 = SSLManagerImpl.getInstance(provider, "abc".toCharArray());
SSLManager sslManager2 = SSLManagerImpl.getInstance(provider, "123".toCharArray());
public void getInstance_shouldReturnSameInstance() throws Exception {
SSLManager sslManager1 = SSLManagerImpl.getInstance(provider, null);
SSLManager sslManager2 = SSLManagerImpl.getInstance(provider, null);

assertNotSame(sslManager1, sslManager2);
assertSame(sslManager1, sslManager2);
}

@Test(expected = IllegalStateException.class)
Expand Down

0 comments on commit cec4a96

Please sign in to comment.