Skip to content

Commit 671043a

Browse files
Replace jnacl with CryptoProvider interface
1 parent c25dbef commit 671043a

24 files changed

+222
-2001
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ local.properties
1111

1212
# Java
1313
build/
14+
out/
1415

1516
# Server
1617
saltyrtc-server-python/

build.gradle

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ sourceCompatibility = '1.8'
2626
// In this section you declare where to find the dependencies of your project
2727
repositories {
2828
jcenter()
29+
maven { url "https://dl.bintray.com/terl/lazysodium-maven" }
2930
}
3031

3132
// In this section you declare the dependencies for your production and test code
@@ -47,6 +48,8 @@ dependencies {
4748
// Test dependencies
4849
testCompile 'org.slf4j:slf4j-simple:1.7.+'
4950
testCompile 'junit:junit:4.12'
51+
testCompile 'com.goterl.lazycode:lazysodium-java:3.3.0'
52+
testCompile 'net.java.dev.jna:jna:5.0.0'
5053
}
5154

5255
test {

docs/docs/usage.md

+6-7
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@ characteristics, therefore the crypto backend in this library is pluggable.
1414

1515
In order to instantiate a `SaltyRTC` instance or a `KeyStore`, you need to
1616
provide an implementation of the `org.saltyrtc.client.crypto.CryptoProvider`
17-
interface. For ease of use, this library provides a pure-java implementation of
18-
such a CryptoProvider using [jnacl](https://github.com/neilalexander/jnacl). To
19-
use, simply create an instance of the `JnaclCryptoProvider`.
17+
interface. You can find an example implementation
18+
[in the testsuite](https://github.com/saltyrtc/saltyrtc-client-java/blob/master/src/test/java/org/saltyrtc/client/tests/LazysodiumCryptoInstance.java),
19+
but depending on your target platform and requirements you should probably provide
20+
your own.
2021

2122
```java
22-
import org.saltyrtc.client.crypto.JnaclCryptoProvider;
23-
24-
final CryptoProvider cryptoProvider = new JnaclCryptoProvider();
23+
final CryptoProvider cryptoProvider = new MyCryptoProvider();
2524
```
2625

2726
## The SaltyRTCBuilder
@@ -129,7 +128,7 @@ import org.saltyrtc.client.keystore.KeyStore;
129128
import org.saltyrtc.tasks.webrtc.WebRTCTask;
130129

131130
final SSLContext sslContext = SSLContext.getDefault();
132-
final CryptoProvider cryptoProvider = new JnaclCryptoProvider();
131+
final CryptoProvider cryptoProvider = new MyCryptoProvider();
133132
final SaltyRTC client = new SaltyRTCBuilder(cryptoProvider)
134133
.connectTo(Config.SALTYRTC_HOST, Config.SALTYRTC_PORT, sslContext)
135134
.withKeyStore(new KeyStore(cryptoProvider))

src/main/java/org/saltyrtc/client/crypto/CryptoProvider.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public interface CryptoProvider {
2222
int BOXOVERHEAD = 16;
2323

2424
/**
25-
* Create a public/private key pair.
25+
* Create a public/private key pair. Put the key material in the provided buffers.
2626
*
2727
* @param publickey A byte array with size PUBLICKEYBYTES
2828
* @param privatekey A byte array with size PRIVATEKEYBYTES

src/main/java/org/saltyrtc/client/crypto/JnaclCryptoInstance.java

-51
This file was deleted.

src/main/java/org/saltyrtc/client/crypto/JnaclCryptoProvider.java

-78
This file was deleted.

0 commit comments

Comments
 (0)