// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. import Foundation import Sodium import SessionUtilitiesKit @testable import SessionMessagingKit class MockSodium: Mock, SodiumType { func getBox() -> BoxType { return accept() as! BoxType } func getGenericHash() -> GenericHashType { return accept() as! GenericHashType } func getSign() -> SignType { return accept() as! SignType } func getAeadXChaCha20Poly1305Ietf() -> AeadXChaCha20Poly1305IetfType { return accept() as! AeadXChaCha20Poly1305IetfType } func generateBlindingFactor(serverPublicKey: String, genericHash: GenericHashType) -> Bytes? { return accept(args: [serverPublicKey, genericHash]) as? Bytes } func blindedKeyPair(serverPublicKey: String, edKeyPair: KeyPair, genericHash: GenericHashType) -> KeyPair? { return accept(args: [serverPublicKey, edKeyPair, genericHash]) as? KeyPair } func sogsSignature(message: Bytes, secretKey: Bytes, blindedSecretKey ka: Bytes, blindedPublicKey kA: Bytes) -> Bytes? { return accept(args: [message, secretKey, ka, kA]) as? Bytes } func combineKeys(lhsKeyBytes: Bytes, rhsKeyBytes: Bytes) -> Bytes? { return accept(args: [lhsKeyBytes, rhsKeyBytes]) as? Bytes } func sharedBlindedEncryptionKey(secretKey a: Bytes, otherBlindedPublicKey: Bytes, fromBlindedPublicKey kA: Bytes, toBlindedPublicKey kB: Bytes, genericHash: GenericHashType) -> Bytes? { return accept(args: [a, otherBlindedPublicKey, kA, kB, genericHash]) as? Bytes } func sessionId(_ sessionId: String, matchesBlindedId blindedSessionId: String, serverPublicKey: String, genericHash: GenericHashType) -> Bool { return accept(args: [sessionId, blindedSessionId, serverPublicKey, genericHash]) as! Bool } }