/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set sw=2 ts=8 et tw=80 ft=cpp : */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ namespace mozilla { namespace psm { struct ByteArray{ uint8_t[] data; }; // For ECKey, RSAKey, and Certificate, slotType indicates which slot this object // should exist on: // 1: modern (supports EC, RSA-PSS) // 2: legacy (only supports RSA PKCS#1v1.5) struct ECKey{ uint8_t[] params; // the EC point representing this key uint8_t[] cert; // the encoded certificate containing this key uint32_t slotType; }; struct RSAKey{ uint8_t[] modulus; // the modulus of this RSA key uint8_t[] cert; // the encoded certificate containing this key uint32_t slotType; }; struct Certificate{ uint8_t[] der; // the encoding of this certificate uint32_t slotType; }; // Helper type for sending keys and certificates over IPC for use by IPC client // certs. union IPCClientCertObject{ ECKey; RSAKey; Certificate; }; struct DelegatedCredentialInfoArg { uint32_t scheme; uint32_t authKeyBits; }; } // namespace psm } // namespace mozilla