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
39 lines
1.1 KiB
Swift
39 lines
1.1 KiB
Swift
//
|
|
// Copyright 2021-2022 Signal Messenger, LLC.
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import SignalFfi
|
|
import Foundation
|
|
|
|
public struct DeviceTransferKey {
|
|
public let privateKey: [UInt8]
|
|
|
|
public static func generate() -> Self {
|
|
let privateKey = failOnError {
|
|
try invokeFnReturningArray {
|
|
signal_device_transfer_generate_private_key($0, $1)
|
|
}
|
|
}
|
|
|
|
return Self(privateKey: privateKey)
|
|
}
|
|
|
|
public func privateKeyMaterial() -> [UInt8] {
|
|
return self.privateKey
|
|
}
|
|
|
|
public func generateCertificate(_ name: String, _ daysTilExpire: Int) -> [UInt8] {
|
|
return privateKey.withUnsafeBorrowedBuffer { privateKeyBuffer in
|
|
failOnError {
|
|
try invokeFnReturningArray {
|
|
signal_device_transfer_generate_certificate($0, $1,
|
|
privateKeyBuffer,
|
|
name,
|
|
UInt32(daysTilExpire))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|