@@ -27,6 +27,48 @@ import XCTest
2727@testable import DXProtocol
2828
2929final class MessageContainerTests : XCTestCase {
30+ func testSenderRatchetKey( ) throws {
31+ let aliceRatchetKey = try KeyPair ( ) . publicKey
32+ let aliceBaseKey = try KeyPair ( ) . publicKey
33+ let aliceIdentityKey = IdentityKeyPublic ( publicKey: try KeyPair ( ) . publicKey)
34+ let bobIdentityKey = IdentityKeyPublic ( publicKey: try KeyPair ( ) . publicKey)
35+ let macKeyData = Data ( [
36+ 0xce , 0x41 , 0x35 , 0xc2 , 0x19 , 0xb1 , 0xdb , 0xe2 , 0xfa , 0x66 , 0x6d , 0xdf , 0xb3 , 0x9a , 0x7e ,
37+ 0x46 , 0x7b , 0xd8 , 0x33 , 0xf9 , 0xcf , 0x30 , 0xd9 , 0x9d , 0x96 , 0x0e , 0xe7 , 0x38 , 0x07 , 0x25 ,
38+ 0xa7 , 0xf1
39+ ] )
40+
41+ let registrationId = UUID ( )
42+ let oneTimePreKeyId = UUID ( )
43+ let signedPreKeyId = UUID ( )
44+
45+ let content = " DXProtocolSecureMessage "
46+ let data = Data ( content. utf8)
47+
48+ let secureMessage = try SecureMessage (
49+ messageVersion: DXProtocolConstants . cipertextMessageCurrentVersion,
50+ macKey: macKeyData,
51+ senderRatchetKey: aliceRatchetKey,
52+ counter: 3 ,
53+ previousCounter: 2 ,
54+ encrypted: data,
55+ senderIdentityKey: aliceIdentityKey,
56+ receiverIdentityKey: bobIdentityKey)
57+ var container = MessageContainer . secureMessage ( secureMessage)
58+ XCTAssertEqual ( container. senderRatchetKey, aliceRatchetKey)
59+
60+ let preKeyMessage = try PreKeySecureMessage (
61+ messageVersion: DXProtocolConstants . cipertextMessageCurrentVersion,
62+ registrationId: registrationId,
63+ oneTimePreKeyId: oneTimePreKeyId,
64+ signedPreKeyId: signedPreKeyId,
65+ senderBaseKey: aliceBaseKey,
66+ senderIdentityKey: aliceIdentityKey,
67+ secureMessage: secureMessage)
68+ container = MessageContainer . preKeySecureMessage ( preKeyMessage)
69+ XCTAssertEqual ( container. senderRatchetKey, aliceRatchetKey)
70+ }
71+
3072 func testSerializeDeserializeSecureMessage( ) throws {
3173 let aliceRatchetKey = try KeyPair ( ) . publicKey
3274 let aliceIdentityKey = IdentityKeyPublic ( publicKey: try KeyPair ( ) . publicKey)
0 commit comments