Update for SignalClient.StoreContext

This commit is contained in:
Jordan Rose 2020-12-08 18:21:42 -08:00
parent bb1f262434
commit 7beae489c8
2 changed files with 13 additions and 13 deletions

View File

@ -207,13 +207,13 @@ fileprivate extension SMKMessageType {
// CiphertextMessage message = new SessionCipher(signalProtocolStore, destinationAddress).encrypt(paddedPlaintext);
let recipientAddress = try ProtocolAddress(from: recipient, deviceId: UInt32(bitPattern: deviceId))
var protocolContextAsPtr = protocolContext
// Allow nil contexts for testing.
return Data(try sealedSenderEncrypt(message: paddedPlaintext,
for: recipientAddress,
from: senderCertificate,
sessionStore: sessionStore,
identityStore: identityStore,
context: &protocolContextAsPtr))
context: (protocolContext as! StoreContext?) ?? NullContext()))
}
// public Pair<SignalProtocolAddress, byte[]> decrypt(CertificateValidator validator, byte[] ciphertext, long timestamp)
@ -230,10 +230,11 @@ fileprivate extension SMKMessageType {
throw SMKError.assertionError(description: "\(logTag) invalid timestamp")
}
var protocolContextAsPtr = protocolContext
// Allow nil contexts for testing.
let context = (protocolContext as! StoreContext?) ?? NullContext()
let messageContent = try UnidentifiedSenderMessageContent(message: cipherTextData,
identityStore: self.identityStore,
context: &protocolContextAsPtr)
context: context)
let senderAddress = messageContent.senderCertificate.sender
let localAddress = try SMKAddress(uuid: localUuid, e164: localE164)
@ -252,7 +253,7 @@ fileprivate extension SMKMessageType {
validationTime: timestamp)
let paddedMessagePlaintext = try throwswrapped_decrypt(messageContent: messageContent,
protocolContext: protocolContext)
context: context)
// return new Pair<>(new SignalProtocolAddress(content.getSenderCertificate().getSender(),
// content.getSenderCertificate().getSenderDeviceId()),
@ -279,7 +280,7 @@ fileprivate extension SMKMessageType {
// throws InvalidVersionException, InvalidMessageException, InvalidKeyException, DuplicateMessageException,
// InvalidKeyIdException, UntrustedIdentityException, LegacyMessageException, NoSessionException
private func throwswrapped_decrypt(messageContent: UnidentifiedSenderMessageContent,
protocolContext: SPKProtocolWriteContext?) throws -> Data {
context: StoreContext) throws -> Data {
// SignalProtocolAddress sender = new SignalProtocolAddress(message.getSenderCertificate().getSender(),
// message.getSenderCertificate().getSenderDeviceId());
@ -296,7 +297,6 @@ fileprivate extension SMKMessageType {
// SessionCipher(signalProtocolStore, sender).decrypt(new PreKeySignalMessage(message.getContent())); default: throw
// new InvalidMessageException("Unknown type: " + message.getType());
// }
var protocolContextAsPtr = protocolContext
let plaintextData: [UInt8]
switch messageContent.messageType {
case .whisper:
@ -306,7 +306,7 @@ fileprivate extension SMKMessageType {
from: ProtocolAddress(from: sender),
sessionStore: sessionStore,
identityStore: identityStore,
context: &protocolContextAsPtr)
context: context)
case .preKey:
let cipherMessage = try PreKeySignalMessage(bytes: messageContent.contents)
plaintextData = try signalDecryptPreKey(
@ -316,7 +316,7 @@ fileprivate extension SMKMessageType {
identityStore: identityStore,
preKeyStore: preKeyStore,
signedPreKeyStore: signedPreKeyStore,
context: &protocolContextAsPtr)
context: context)
case let unknownType:
throw SMKError.assertionError(
description: "\(logTag) Not prepared to handle this message type: \(unknownType.rawValue)")

View File

@ -64,7 +64,7 @@ class MockClient: NSObject {
func generateMockPreKey() -> PreKeyRecord {
let preKeyId = UInt32(Int32.random(in: 0...Int32.max))
let preKey = try! PreKeyRecord(id: preKeyId, privateKey: PrivateKey.generate())
try! self.preKeyStore.storePreKey(preKey, id: preKeyId, context: nil)
try! self.preKeyStore.storePreKey(preKey, id: preKeyId, context: NullContext())
return preKey
}
@ -72,13 +72,13 @@ class MockClient: NSObject {
let signedPreKeyId = UInt32(Int32.random(in: 0...Int32.max))
let keyPair = IdentityKeyPair.generate()
let generatedAt = Date()
let identityKeyPair = try! self.identityStore.identityKeyPair(context: nil)
let identityKeyPair = try! self.identityStore.identityKeyPair(context: NullContext())
let signature = identityKeyPair.privateKey.generateSignature(message: keyPair.publicKey.serialize())
let signedPreKey = try! SignedPreKeyRecord(id: signedPreKeyId,
timestamp: UInt64(generatedAt.timeIntervalSince1970),
privateKey: keyPair.privateKey,
signature: signature)
try! self.signedPreKeyStore.storeSignedPreKey(signedPreKey, id: signedPreKeyId, context: nil)
try! self.signedPreKeyStore.storeSignedPreKey(signedPreKey, id: signedPreKeyId, context: NullContext())
return signedPreKey
}
@ -114,7 +114,7 @@ class MockClient: NSObject {
for: bobProtocolAddress,
sessionStore: sessionStore,
identityStore: identityStore,
context: nil)
context: NullContext())
// bobStore.storeSignedPreKey(2, bobSignedPreKey);
// bobStore.storePreKey(1, new PreKeyRecord(1, bobPreKey));