mirror of
https://github.com/signalapp/libsignal.git
synced 2026-04-25 17:25:18 +02:00
- Java: org.whispersystems:signal-client-java ->
org.signal:libsignal-client
- Java: org.whispersystems:signal-client-android ->
org.signal:libsignal-android
- Java: org.whispersystems:libsignal-server ->
org.signal:libsignal-server
- Swift: SignalClient -> LibSignalClient
- NPM: @signalapp/signal-client -> @signalapp/libsignal-client
- Repository: github.com/signalapp/libsignal-client ->
github.com/signalapp/libsignal
80 lines
3.9 KiB
Swift
80 lines
3.9 KiB
Swift
//
|
|
// Copyright 2020-2021 Signal Messenger, LLC.
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import Foundation
|
|
import SignalFfi
|
|
|
|
public class ServerZkProfileOperations {
|
|
|
|
let serverSecretParams: ServerSecretParams
|
|
|
|
public init(serverSecretParams: ServerSecretParams) {
|
|
self.serverSecretParams = serverSecretParams
|
|
}
|
|
|
|
public func issueProfileKeyCredential(profileKeyCredentialRequest: ProfileKeyCredentialRequest, uuid: UUID, profileKeyCommitment: ProfileKeyCommitment) throws -> ProfileKeyCredentialResponse {
|
|
return try issueProfileKeyCredential(randomness: Randomness.generate(), profileKeyCredentialRequest: profileKeyCredentialRequest, uuid: uuid, profileKeyCommitment: profileKeyCommitment)
|
|
}
|
|
|
|
public func issueProfileKeyCredential(randomness: Randomness, profileKeyCredentialRequest: ProfileKeyCredentialRequest, uuid: UUID, profileKeyCommitment: ProfileKeyCommitment) throws -> ProfileKeyCredentialResponse {
|
|
return try serverSecretParams.withUnsafePointerToSerialized { serverSecretParams in
|
|
try randomness.withUnsafePointerToBytes { randomness in
|
|
try profileKeyCredentialRequest.withUnsafePointerToSerialized { request in
|
|
try withUnsafePointer(to: uuid.uuid) { uuid in
|
|
try profileKeyCommitment.withUnsafePointerToSerialized { commitment in
|
|
try invokeFnReturningSerialized {
|
|
signal_server_secret_params_issue_profile_key_credential_deterministic($0, serverSecretParams, randomness, request, uuid, commitment)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public func issuePniCredential(profileKeyCredentialRequest: ProfileKeyCredentialRequest, aci: UUID, pni: UUID, profileKeyCommitment: ProfileKeyCommitment) throws -> PniCredentialResponse {
|
|
return try issuePniCredential(randomness: Randomness.generate(), profileKeyCredentialRequest: profileKeyCredentialRequest, aci: aci, pni: pni, profileKeyCommitment: profileKeyCommitment)
|
|
}
|
|
|
|
public func issuePniCredential(randomness: Randomness, profileKeyCredentialRequest: ProfileKeyCredentialRequest, aci: UUID, pni: UUID, profileKeyCommitment: ProfileKeyCommitment) throws -> PniCredentialResponse {
|
|
return try serverSecretParams.withUnsafePointerToSerialized { serverSecretParams in
|
|
try randomness.withUnsafePointerToBytes { randomness in
|
|
try profileKeyCredentialRequest.withUnsafePointerToSerialized { request in
|
|
try withUnsafePointer(to: aci.uuid) { aci in
|
|
try withUnsafePointer(to: pni.uuid) { pni in
|
|
try profileKeyCommitment.withUnsafePointerToSerialized { commitment in
|
|
try invokeFnReturningSerialized {
|
|
signal_server_secret_params_issue_pni_credential_deterministic($0, serverSecretParams, randomness, request, aci, pni, commitment)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public func verifyProfileKeyCredentialPresentation(groupPublicParams: GroupPublicParams, profileKeyCredentialPresentation: ProfileKeyCredentialPresentation) throws {
|
|
try serverSecretParams.withUnsafePointerToSerialized { serverSecretParams in
|
|
try groupPublicParams.withUnsafePointerToSerialized { groupPublicParams in
|
|
try profileKeyCredentialPresentation.withUnsafePointerToSerialized { presentation in
|
|
try checkError(signal_server_secret_params_verify_profile_key_credential_presentation(serverSecretParams, groupPublicParams, presentation))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public func verifyPniCredentialPresentation(groupPublicParams: GroupPublicParams, presentation: PniCredentialPresentation) throws {
|
|
try serverSecretParams.withUnsafePointerToSerialized { serverSecretParams in
|
|
try groupPublicParams.withUnsafePointerToSerialized { groupPublicParams in
|
|
try presentation.withUnsafePointerToSerialized { presentation in
|
|
try checkError(signal_server_secret_params_verify_pni_credential_presentation(serverSecretParams, groupPublicParams, presentation))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|