mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-09 10:19:41 +02:00
Add OMEMO support
This commit adds the modules smack-omemo and smack-omemo-signal. smack-omemo is licensed under the Apache license like the rest of the smack project. smack-omemo-signal on the other hand is licensed under the GPLv3. Due to the fact, that smack-omemo is not of much use without smack-omemo-signal, the OMEMO feature can currently only be used by GPLv3 compatible software. This may change in the future, when a more permissively licensed module becomes available. Fixes SMACK-743.
This commit is contained in:
parent
ce36fb468c
commit
e86700b040
95 changed files with 11770 additions and 22 deletions
1
smack-omemo-signal-integration-test/.gitignore
vendored
Normal file
1
smack-omemo-signal-integration-test/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
int_test_omemo_store/
|
17
smack-omemo-signal-integration-test/build.gradle
Normal file
17
smack-omemo-signal-integration-test/build.gradle
Normal file
|
@ -0,0 +1,17 @@
|
|||
apply plugin: 'application'
|
||||
|
||||
description = """\
|
||||
Smack integration tests for OMEMO using libsignal."""
|
||||
|
||||
mainClassName = 'org.igniterealtime.smack.inttest.smack_omemo_signal.SmackOmemoSignalIntegrationTestFramework'
|
||||
applicationDefaultJvmArgs = ["-enableassertions"]
|
||||
|
||||
dependencies {
|
||||
compile project(':smack-integration-test')
|
||||
compile project(':smack-omemo-signal')
|
||||
}
|
||||
|
||||
run {
|
||||
// Pass all system properties down to the "application" run
|
||||
systemProperties System.getProperties()
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
*
|
||||
* Copyright 2017 Paul Schaub
|
||||
*
|
||||
* This file is part of smack-omemo-signal-integration-test.
|
||||
*
|
||||
* smack-omemo-signal-integration-test is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
package org.igniterealtime.smack.inttest.smack_omemo_signal;
|
||||
|
||||
import org.igniterealtime.smack.inttest.SmackIntegrationTestFramework;
|
||||
import org.jivesoftware.smack.SmackException;
|
||||
import org.jivesoftware.smack.XMPPException;
|
||||
import org.jivesoftware.smackx.omemo.exceptions.CorruptedOmemoKeyException;
|
||||
import org.jivesoftware.smackx.omemo.signal.SignalOmemoService;
|
||||
|
||||
import javax.crypto.BadPaddingException;
|
||||
import javax.crypto.IllegalBlockSizeException;
|
||||
import javax.crypto.NoSuchPaddingException;
|
||||
import java.io.IOException;
|
||||
import java.security.InvalidAlgorithmParameterException;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.NoSuchProviderException;
|
||||
|
||||
public class SmackOmemoSignalIntegrationTestFramework {
|
||||
|
||||
public static void main(String[] args) throws InvalidKeyException, NoSuchPaddingException,
|
||||
InvalidAlgorithmParameterException, IllegalBlockSizeException,
|
||||
BadPaddingException, NoSuchAlgorithmException, NoSuchProviderException, SmackException,
|
||||
InterruptedException, CorruptedOmemoKeyException, KeyManagementException, IOException, XMPPException {
|
||||
SignalOmemoService.acknowledgeLicense();
|
||||
SignalOmemoService.setup();
|
||||
|
||||
final String[] smackOmemoPackages = new String[] { "org.jivesoftware.smackx.omemo" };
|
||||
SmackIntegrationTestFramework.main(smackOmemoPackages);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/**
|
||||
*
|
||||
* Copyright 2017 Paul Schaub
|
||||
*
|
||||
* This file is part of smack-omemo-signal-integration-test.
|
||||
*
|
||||
* smack-omemo-signal-integration-test is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* The Smack Integration Test Framework for smack-omemo-signal.
|
||||
*/
|
||||
package org.igniterealtime.smack.inttest.smack_omemo_signal;
|
Loading…
Add table
Add a link
Reference in a new issue