diff --git a/apple/swift_homomorphic_encryption/pnns/v1/pnns_processed_database.proto b/apple/swift_homomorphic_encryption/pnns/v1/pnns_processed_database.proto new file mode 100644 index 0000000..860d26f --- /dev/null +++ b/apple/swift_homomorphic_encryption/pnns/v1/pnns_processed_database.proto @@ -0,0 +1,31 @@ +// Copyright 2024 Apple Inc. and the Swift Homomorphic Encryption project authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; +package apple.swift_homomorphic_encryption.pnns.v1; + +import "apple/swift_homomorphic_encryption/pnns/v1/pnns.proto"; +import "apple/swift_homomorphic_encryption/pnns/v1/pnns_server_config.proto"; + +// Serialized pre-processed nearest neighbors database. +message SerializedProcessedDatabase { + // Pre-computed values for the nearest neighbors computation, one per plaintext CRT modulus. + repeated SerializedPlaintextMatrix plaintext_matrices = 1; + // Unique identifier for each entry in the database. + repeated uint64 entry_ids = 2; + // Metadata for each entry in the database. + repeated bytes entry_metadatas = 3; + // Configuration used to create the database. + ServerConfig server_config = 4; +}