//
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//

import Foundation
import LibSignalClient

extension PublicKey {
    public convenience init(keyData: Data) throws {
        if keyData.count != Constants.keyLengthDJB {
            throw SignalError.invalidKey("invalid number of public key bytes (expected \(Constants.keyLengthDJB), was \(keyData.count))")
        }
        try self.init([Constants.keyTypeDJB] + keyData)
    }

    public enum Constants {
        public static let keyTypeDJB: UInt8 = 0x05
        public static let keyLengthDJB: Int = 32
    }
}
