Skip to content

Commit

Permalink
add the .gradle files to the project
Browse files Browse the repository at this point in the history
  • Loading branch information
Jordan Bouellat committed Sep 8, 2016
1 parent 3dea882 commit e7cf1a5
Show file tree
Hide file tree
Showing 12 changed files with 272 additions and 3 deletions.
31 changes: 31 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion toolVersions.android.compileSdk
buildToolsVersion toolVersions.android.buildTools

defaultConfig {
applicationId "com.datatheorem.android.trustkit.demoapp"
minSdkVersion toolVersions.android.minSdk
targetSdkVersion toolVersions.android.targetSdk
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

compile project(':trustkit')
compile "com.android.support:appcompat-v7:$rootProject.libVersions.android.appCompat"
compile "com.android.support:design:$rootProject.libVersions.android.appCompat"

testCompile "junit:junit:$rootProject.libVersions.junit"

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.datatheorem.android.trustkit.demoapp;

import android.os.Bundle;
import android.os.StrictMode;
import android.security.NetworkSecurityPolicy;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
Expand All @@ -25,6 +27,7 @@ protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);


FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

// final TrustKitConfig trustKitConfig = new TrustKitConfig();
Expand All @@ -35,6 +38,8 @@ protected void onCreate(Bundle savedInstanceState) {
// trustKitConfig.put("www.datatheorem.com", datatheoremConfig);
//
TextView textView = (TextView) findViewById(R.id.textview);


textView.setText(TrustKit.init(this));

}
Expand Down
47 changes: 47 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
}
}


ext{
javaSourceCompatibilty = '1.6'
toolVersions = [
android : [
compileSdk : 24,
gradlePlugin : '2.1.0',
buildTools : '24.0.2',
minSdk : 17,
targetSdk: 24
]
]

libVersions = [
junit: '4.12',
robolectric: '3.0',
mockito: '2.0.+',
mockwebserver : '3.4.1',
android : [
appCompat : '24.+'
]
]
}

task clean(type: Delete) {
delete rootProject.buildDir
}
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
6 changes: 6 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#Tue Aug 16 12:39:16 PDT 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
1 change: 1 addition & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include ':app', ':trustkit'
37 changes: 37 additions & 0 deletions trustkit/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

apply plugin: 'com.android.library'

repositories {
mavenCentral()
}

dependencies {
compile "com.android.support:support-annotations:$rootProject.libVersions.android.appCompat"
compile "com.android.support:support-v4:$rootProject.libVersions.android.appCompat"

androidTestCompile "junit:junit:$rootProject.libVersions.junit"

testCompile "junit:junit:$rootProject.libVersions.junit"

testCompile "org.robolectric:robolectric:$rootProject.libVersions.robolectric"
testCompile "org.mockito:mockito-core:$rootProject.libVersions.mockito"

testCompile 'org.json:json:20140107'
testCompile "com.squareup.okhttp3:mockwebserver:$rootProject.libVersions.mockwebserver"
}

android {
defaultConfig {
compileSdkVersion toolVersions.android.compileSdk
buildToolsVersion toolVersions.android.buildTools
//noinspection GroovyAssignabilityCheck
minSdkVersion toolVersions.android.minSdk
versionCode 1
versionName "0.1.0"
}

lintOptions {
abortOnError false
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.datatheorem.android.trustkit.config;

public final class ConfigException extends RuntimeException{
public ConfigException(String detailMessage) {
super(detailMessage);
}

public ConfigException(Throwable throwable) {
super(throwable);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
package com.datatheorem.android.trustkit.config;

import java.util.Arrays;

public final class PinnedDomainConfig {
private String[] publicKeyHashes;
private boolean enforcePinning;
private String[] reportURIs;
private boolean includeSubdomains;
private boolean disableDefaultReportUri = false;

private PinnedDomainConfig(Builder builder) {
publicKeyHashes = builder.publicKeyHashes;
enforcePinning = builder.enforcePinning;
reportURIs = builder.reportURIs;
includeSubdomains = builder.includeSubdomains;
disableDefaultReportUri = builder.disableDefaultReportUri;
}

public boolean isDisableDefaultReportUri() {
return disableDefaultReportUri;
}

@Override
public String toString() {
return new StringBuilder()
.append("PinnedDomainConfig{")
.append("knownPins = " + Arrays.toString(publicKeyHashes) + "\n")
.append("enforcePinning = " +enforcePinning + "\n")
.append("reportUris = " + Arrays.toString(reportURIs) + "\n")
.append("includeSubdomains = " + includeSubdomains + "\n")
.append("disableDefaultReportuUri = " + disableDefaultReportUri+"\n")
.append("}")
.toString();
}

public static final class Builder {
private String[] publicKeyHashes;
private boolean enforcePinning;
private String[] reportURIs;
private boolean includeSubdomains;
private boolean disableDefaultReportUri;

public Builder() {
}

public Builder publicKeyHashes(String[] val) {
publicKeyHashes = val;
return this;
}

public Builder enforcePinning(boolean val) {
enforcePinning = val;
return this;
}

public Builder reportURIs(String[] val) {
reportURIs = val;
return this;
}

public Builder includeSubdomains(boolean val) {
includeSubdomains = val;
return this;
}

public Builder disableDefaultReportUri(boolean val) {
disableDefaultReportUri = val;
return this;
}

public PinnedDomainConfig build() {
return new PinnedDomainConfig(this);
}
}

public String[] getPublicKeyHashes() {
return publicKeyHashes;
}

public boolean isEnforcePinning() {
return enforcePinning;
}

public String[] getReportURIs() {
return reportURIs;
}

public boolean isIncludeSubdomains() {
return includeSubdomains;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.datatheorem.android.trustkit.config;

import java.util.HashMap;

public class TrustKitConfig extends HashMap<String, PinnedDomainConfig> {
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
package com.datatheorem.android.trustkit.report;


import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.NoSuchAlgorithmException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLPeerUnverifiedException;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

final class ReportsRateLimiter {
private static final long INTERVAL_BETWEEN_REPORTS_CACHE_RESET = 3600*24;
private static Set<PinFailureInfo> cachePinFailureReport = null;
Expand All @@ -26,11 +40,8 @@ public synchronized static boolean shouldRateLimit(PinFailureReport report) {
lastReportCacheResetDate = new Date();
}


PinFailureInfo pinFailureInfo = new PinFailureInfo(report);

boolean shouldRateLimitReport = cachePinFailureReport.contains(pinFailureInfo);

if (!shouldRateLimitReport){
cachePinFailureReport.add(pinFailureInfo);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.datatheorem.android.trustkit.utils;

import android.database.ContentObservable;
import android.util.Log;

import com.datatheorem.android.trustkit.BuildConfig;
import com.datatheorem.android.trustkit.report.BackgroundReporter;

public final class TrustKitLog {

public static void e(String message) {
if (BuildConfig.DEBUG) {
Log.e("TrustKit", " TRUSKIT ERROR : \n" + message);
}
}

public static void i(String message) {
if (BuildConfig.DEBUG) {
Log.i("TrustKit", " TRUSTKIT INFO : \n " + message);
}
}
}

0 comments on commit e7cf1a5

Please sign in to comment.