Skip to content

Commit

Permalink
Merge pull request #46 from VirgilSecurity/dev
Browse files Browse the repository at this point in the history
Add ability to encrypt file to be shared and fix ticket serialization
  • Loading branch information
andrii-iakovenko authored Aug 13, 2020
2 parents 17357c7 + 8653990 commit c5e9777
Show file tree
Hide file tree
Showing 23 changed files with 807 additions and 192 deletions.
12 changes: 7 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ buildscript {

ext.versions = [
// Virgil
virgilSdk : '7.1.0',
virgilCrypto : '0.12.0',
pythia : '0.3.3',
ratchet : '0.1.1',
virgilSdk : '7.3.2',
virgilCrypto : '0.15.2',
pythia : '0.3.7',
ratchet : '0.1.4',

// Kotlin
kotlin : '1.3.61',
Expand Down Expand Up @@ -81,6 +81,7 @@ buildscript {
google()
jcenter()
mavenCentral()
mavenLocal()
}
dependencies {
classpath "com.android.tools.build:gradle:$versions.gradle"
Expand All @@ -97,6 +98,7 @@ allprojects {
google()
jcenter()
mavenCentral()
mavenLocal()
}
}

Expand Down Expand Up @@ -139,7 +141,7 @@ def getGradleOrSystemProperty(String name, Project project) {
final String BASE_VIRGIL_PACKAGE = 'com.virgilsecurity'

// Packages versions
final String SDK_VERSION = '2.0.0'
final String SDK_VERSION = '2.0.6'

subprojects {
group BASE_VIRGIL_PACKAGE
Expand Down
1 change: 1 addition & 0 deletions ethree-benchmark/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ android {
defaultConfig {
minSdkVersion androidOptions.minSdkVersionRegular
testInstrumentationRunner 'androidx.benchmark.junit4.AndroidBenchmarkRunner'
testInstrumentationRunnerArgument 'androidx.benchmark.suppressErrors', 'EMULATOR,LOW_BATTERY'
}

buildTypes {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,8 @@

package com.virgilsecurity.android.ethree_benchmark

import android.util.Log
import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import com.virgilsecurity.android.common.callback.OnGetTokenCallback
import com.virgilsecurity.android.common.utils.TestConfig
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,8 @@ package com.virgilsecurity.android.common.utils

import android.content.Context
import androidx.test.platform.app.InstrumentationRegistry
import com.virgilsecurity.android.common.BuildConfig
import com.virgilsecurity.sdk.crypto.VirgilCrypto
import com.virgilsecurity.sdk.crypto.VirgilPrivateKey
import com.virgilsecurity.sdk.utils.ConvertionUtils
import com.virgilsecurity.testcommon.property.EnvPropertyReader
import com.virgilsecurity.testcommon.utils.PropertyUtils
import java.io.File
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@
package com.virgilsecurity.android.common.model

import android.os.Parcel
import android.util.Log
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.virgilsecurity.android.common.exception.GroupException
import com.virgilsecurity.common.extension.toData
import com.virgilsecurity.common.model.Data
import com.virgilsecurity.sdk.crypto.HashAlgorithm
import com.virgilsecurity.sdk.crypto.VirgilCrypto
import org.junit.Assert.assertArrayEquals
import org.junit.Assert.assertEquals
import org.junit.Assert.*
import org.junit.Test
import org.junit.runner.RunWith
import java.util.*
Expand Down Expand Up @@ -85,6 +85,33 @@ class TicketTest {
Ticket(crypto, sessionId, participantsSet)
}

@Test
fun ticket_serialize_deserialize() {
val crypto = VirgilCrypto()
val identifierData = UUID.randomUUID().toString().toData()
val sessionId = computeSessionId(identifierData, crypto)
val participantsSet = setOf("Bob", "Alice", "Jane")
val ticket = Ticket(crypto, sessionId, participantsSet)

val serializedTicket = ticket.serialize()
assertNotNull(serializedTicket)
Log.d("Test", serializedTicket.toBase64String())

val deserializedTicket = Ticket.deserialize(serializedTicket)
assertNotNull(deserializedTicket)
assertEquals(ticket.groupMessage.epoch, deserializedTicket.groupMessage.epoch)
assertArrayEquals(ticket.groupMessage.sessionId, deserializedTicket.groupMessage.sessionId)
assertEquals(ticket.participants, deserializedTicket.participants)
}

@Test
fun ticket_serialize_deserialize_from_other_jvm() {
val serializedTicket = "eyJncm91cE1lc3NhZ2UiOls4LDAsMTgsNzAsMTAsMzIsLTEwLDUyLC04NCwtMTExLC0xMTUsNDAsLTg2LDM3LC03Nyw2NiwtMTAsMjEsNzksLTExNywxMjIsNzksNzAsLTU5LDYzLDExNCwxMjYsLTEyMyw0MywxMTIsMTYsNzIsNjEsMTEyLC0zLC0zNCwxMjIsMTA1LDE2LDAsMjYsMzIsMTE3LDU3LDkwLC01NCw1Myw4Myw0MywtMzgsMjEsNTQsLTk3LDExMSwxMjUsOTEsMTExLC0zMiwxMjEsLTEwNywtNTAsLTU0LC03NywtODIsNDYsMTIzLC05OSwtNDgsMzAsLTM1LDEwMiw3Myw3Miw1MF0sInBhcnRpY2lwYW50cyI6WyJCb2IiLCJBbGljZSIsIkphbmUiXX0="
val deserializedTicket = Ticket.deserialize(Data.fromBase64String(serializedTicket))
assertNotNull(deserializedTicket)
assertEquals(0, deserializedTicket.groupMessage.epoch)
}

private fun computeSessionId(identifier: Data, crypto: VirgilCrypto): Data {
if (identifier.value.size <= 10)
throw GroupException(GroupException.Description.SHORT_GROUP_ID)
Expand Down
Loading

0 comments on commit c5e9777

Please sign in to comment.