1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CRYPTO_NSS_UTIL_INTERNAL_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CRYPTO_NSS_UTIL_INTERNAL_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <secmodt.h> 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// These functions return a type defined in an NSS header, and so cannot be 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// declared in nss_util.h. Hence, they are declared here. 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace crypto { 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Returns a reference to the default NSS key slot for storing 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// public-key data only (e.g. server certs). Caller must release 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// returned reference with PK11_FreeSlot. 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenPK11SlotInfo* GetPublicNSSKeySlot(); 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Returns a reference to the default slot for storing private-key and 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// mixed private-key/public-key data. Returns a hardware (TPM) NSS 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// key slot if on ChromeOS and EnableTPMForNSS() has been called 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// successfully. Caller must release returned reference with 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// PK11_FreeSlot. 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenPK11SlotInfo* GetPrivateNSSKeySlot(); 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} // namespace crypto 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CRYPTO_NSS_UTIL_INTERNAL_H_ 31