Beispiel #1
0
        public static void initializeSession(SessionState sessionState,
                                             SymmetricSignalProtocolParameters parameters)
        {
            if (isAlice(parameters.getOurBaseKey().getPublicKey(), parameters.getTheirBaseKey()))
            {
                AliceSignalProtocolParameters.Builder aliceParameters = AliceSignalProtocolParameters.newBuilder();

                aliceParameters.setOurBaseKey(parameters.getOurBaseKey())
                .setOurIdentityKey(parameters.getOurIdentityKey())
                .setTheirRatchetKey(parameters.getTheirRatchetKey())
                .setTheirIdentityKey(parameters.getTheirIdentityKey())
                .setTheirSignedPreKey(parameters.getTheirBaseKey())
                .setTheirOneTimePreKey(May <ECPublicKey> .NoValue);

                RatchetingSession.initializeSession(sessionState, aliceParameters.create());
            }
            else
            {
                BobSignalProtocolParameters.Builder bobParameters = BobSignalProtocolParameters.newBuilder();

                bobParameters.setOurIdentityKey(parameters.getOurIdentityKey())
                .setOurRatchetKey(parameters.getOurRatchetKey())
                .setOurSignedPreKey(parameters.getOurBaseKey())
                .setOurOneTimePreKey(May <ECKeyPair> .NoValue)
                .setTheirBaseKey(parameters.getTheirBaseKey())
                .setTheirIdentityKey(parameters.getTheirIdentityKey());

                RatchetingSession.initializeSession(sessionState, bobParameters.create());
            }
        }