store-internal.h revision 13493ab7596e827b8d0caab2c89e635dd65f78f9
* IPRT - Cryptographic Store, Internal Header. * Copyright (C) 2006-2014 Oracle Corporation * This file is part of VirtualBox Open Source Edition (OSE), as * you can redistribute it and/or modify it under the terms of the GNU * General Public License (GPL) as published by the Free Software * Foundation, in version 2 as it comes in the "COPYING" file of the * VirtualBox OSE distribution. VirtualBox OSE is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. * The contents of this file may alternatively be used under the terms * of the Common Development and Distribution License Version 1.0 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the * VirtualBox OSE distribution, in which case the provisions of the * CDDL are applicable instead of those of the GPL. * You may elect to license modified versions of this file under the * terms and conditions of either the GPL or the CDDL or both. * Internal certificate context. * In addition to the externally visible structure (RTCRCERTCTX) this has the * reference counter and store reference. (This structure may again be part of * a larger structure internal to the store, depending on the source store.) /** Magic number (RTCRCERTCTXINT_MAGIC). */ /** Reference counter. */ * Destructor that gets called with cRefs reaches zero. * @param pCertCtx The internal certificate context. /** The public store context. */ /** Pointer to an internal certificate context. */ /** Magic value for RTCRCERTCTXINT::u32Magic (Alan Mathison Turing). */ /** Dead magic value for RTCRCERTCTXINT::u32Magic. */ * IPRT Cryptographic Store Provider. * @remarks This is a very incomplete sketch. /** The provider name. */ * Called to destroy an open store. * @param pvProvider The provider specific data. * Queries the private key. * @returns IPRT status code. * @retval VERR_NOT_FOUND if not private key. * @retval VERR_ACCESS_DENIED if the private key isn't allowed to leave the * store. One would then have to use the pfnCertCtxSign method. * @param pvProvider The provider specific data. * @param pCertCtx The internal certificate context. * @param pbKey Where to return the key bytes. * @param cbKey The size of the buffer @a pbKey points to. * @param pcbKeyRet Where to return the size of the returned key. * Open an enumeration of all certificates. * @returns IPRT status code * @param pvProvider The provider specific data. * @param pSearch Pointer to opaque search state structure. The * provider should initalize this on success. * Get the next certificate. * @returns Reference to the next certificate context (must be released by * caller). NULL if no more certificates in the search result. * @param pvProvider The provider specific data. * @param pSearch Pointer to opaque search state structure. * Closes a certficate search state. * @param pvProvider The provider specific data. * @param pSearch Pointer to opaque search state structure to destroy. * Adds a certificate to the store. * @param pvProvider The provider specific data. * @param fFlags RTCRCERTCTX_F_XXX. * @param pbEncoded The encoded certificate bytes. * @param cbEncoded The size of the encoded certificate. * @param pErrInfo Where to store extended error info. Optional. * Find all certficates matching a given issuer and serial number. * (Usually only one result.) * @returns IPRT status code * @param pvProvider The provider specific data. * @param phSearch Pointer to a provider specific search handle. /** Non-zero end marker. */ /** Pointer to a store provider call table. */