@@ -10,9 +10,10 @@ of your key and session information to durable media.
10
10
11
11
## Creating keys
12
12
13
- `````
13
+ ````` java
14
14
IdentityKeyPair identityKey = KeyHelper . generateIdentityKeyPair();
15
- List<PreKeyRecord> oneTimePreKeys = KeyHelper.generatePreKeys(100);
15
+ List<PreKeyRecord > oneTimePreKeys = KeyHelper . generatePreKeys(0 , 100 );
16
+ PreKeyRecord lastResortKey = KeyHelper . generateLastResortPreKey();
16
17
SignedPreKeyRecord signedPreKeyRecord = KeyHelper . generateSignedPreKey(identityKey, signedPreKeyId);
17
18
`````
18
19
@@ -22,78 +23,82 @@ The above are then stored locally so that they're available for load via the `Si
22
23
23
24
At install time, clients need to register with the Signal server.
24
25
25
- `````
26
+ ````` java
26
27
private final String URL = " https://my.signal.server.com" ;
27
28
private final TrustStore TRUST_STORE = new MyTrustStoreImpl ();
28
29
private final String USERNAME = " +14151231234" ;
29
30
private final String PASSWORD = generateRandomPassword();
31
+ private final String USER_AGENT = " [FILL_IN]" ;
30
32
31
33
SignalServiceAccountManager accountManager = new SignalServiceAccountManager (URL , TRUST_STORE ,
32
- USERNAME, PASSWORD);
34
+ USERNAME , PASSWORD , USER_AGENT );
33
35
34
36
accountManager. requestSmsVerificationCode();
35
- accountManager.verifyAccount (receivedSmsVerificationCode, generateRandomSignalingKey(),
36
- false, generateRandomInstallId());
37
+ accountManager. verifyAccountWithCode (receivedSmsVerificationCode, generateRandomSignalingKey(),
38
+ generateRandomInstallId(), false );
37
39
accountManager. setGcmId(Optional . of(GoogleCloudMessaging . getInstance(this ). register(REGISTRATION_ID )));
38
- accountManager.setPreKeys(identityKey.getPublic (), lastResortKey, signedPreKey , oneTimePreKeys);
40
+ accountManager. setPreKeys(identityKey. getPublicKey (), lastResortKey, signedPreKeyRecord , oneTimePreKeys);
39
41
`````
40
42
41
43
## Sending text messages
42
44
43
- `````
45
+ ````` java
44
46
SignalServiceMessageSender messageSender = new SignalServiceMessageSender (URL , TRUST_STORE , USERNAME , PASSWORD ,
45
- localRecipientId, new MySignalProtocolStore(),
46
- Optional.absent());
47
+ new MySignalProtocolStore (),
48
+ USER_AGENT , Optional . absent());
47
49
48
- messageSender.sendMessage(new SignalProtocolAddress ("+14159998888"),
49
- SignalProtocolMessage .newBuilder()
50
- .withBody("Hello, world!")
51
- .build());
50
+ messageSender. sendMessage(new SignalServiceAddress (" +14159998888" ),
51
+ SignalServiceDataMessage . newBuilder()
52
+ .withBody(" Hello, world!" )
53
+ .build());
52
54
`````
53
55
54
56
## Sending media messages
55
57
56
- `````
58
+ ````` java
57
59
SignalServiceMessageSender messageSender = new SignalServiceMessageSender (URL , TRUST_STORE , USERNAME , PASSWORD ,
58
- localRecipientId, new MySignalProtocolStore(),
59
- Optional.absent());
60
-
61
- File myAttachment = new File("/path/to/my.attachment");
62
- FileInputStream attachmentStream = new FileInputStream(myAttachment);
63
- TextSecureAttachment attachment = SignalServiceAttachment.newStreamBuilder()
64
- .withStream(attachmentStream)
65
- .withContentType("image/png")
66
- .withLength(myAttachment.size ())
67
- .build();
68
-
69
- messageSender.sendMessage(new SignalProtocolAddress ("+14159998888"),
70
- SignalProtocolMessage .newBuilder()
71
- .withBody("An attachment!")
72
- .withAttachment(attachment)
73
- .build());
60
+ new MySignalProtocolStore (),
61
+ USER_AGENT , Optional . absent());
62
+
63
+ File myAttachment = new File (" /path/to/my.attachment" );
64
+ FileInputStream attachmentStream = new FileInputStream (myAttachment);
65
+ SignalServiceAttachment attachment = SignalServiceAttachment . newStreamBuilder()
66
+ .withStream(attachmentStream)
67
+ .withContentType(" image/png" )
68
+ .withLength(myAttachment. length ())
69
+ .build();
70
+
71
+ messageSender. sendMessage(new SignalServiceAddress (" +14159998888" ),
72
+ SignalServiceDataMessage . newBuilder()
73
+ .withBody(" An attachment!" )
74
+ .withAttachment(attachment)
75
+ .build());
74
76
75
77
`````
76
78
77
79
## Receiving messages
78
80
79
- `````
80
- SignalServiceMessageReceiver messageReceiver = new SignalServiceMessageReceiver(URL, TRUST_STORE, USERNAME, PASSWORD, mySignalingKey);
81
- SignalServiceMessagePipe messagePipe;
81
+ ````` java
82
+ SignalServiceMessageReceiver messageReceiver = new SignalServiceMessageReceiver (URL , TRUST_STORE , USERNAME ,
83
+ PASSWORD , mySignalingKey,
84
+ USER_AGENT );
85
+ SignalServiceMessagePipe messagePipe = null ;
82
86
83
87
try {
84
- messagePipe = messageReciever .createMessagePipe();
88
+ messagePipe = messageReceiver . createMessagePipe();
85
89
86
90
while (listeningForMessages) {
87
91
SignalServiceEnvelope envelope = messagePipe. read(timeout, timeoutTimeUnit);
88
- SignalServiceCipher cipher = new SignalServiceCipher(new MySignalProtocolStore());
89
- SignalServiceMessage message = cipher.decrypt(envelope);
92
+ SignalServiceCipher cipher = new SignalServiceCipher (new SignalServiceAddress (USERNAME ),
93
+ new MySignalProtocolStore ());
94
+ SignalServiceContent message = cipher. decrypt(envelope);
90
95
91
- System.out.println("Received message: " + message.getBody().get());
96
+ System . out. println(" Received message: " + message. getDataMessage() . get() . getBody(). get());
92
97
}
93
98
94
99
} finally {
95
100
if (messagePipe != null )
96
- messagePipe.close ();
101
+ messagePipe. shutdown ();
97
102
}
98
103
`````
99
104
0 commit comments