diff options
author | John Sonnenschein <johns@joyent.com> | 2012-05-17 18:26:57 +0000 |
---|---|---|
committer | John Sonnenschein <johns@joyent.com> | 2012-05-17 18:26:57 +0000 |
commit | 04b244dd661c24b510ac22936decfc0972d202d3 (patch) | |
tree | 3ebfef98afc303fddf3415d6fba64e8682f495e8 /usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp | |
parent | eac250589e41f1b705e1b7427b02b3379aac9f9e (diff) | |
parent | a69187741b83640a90dd8586195456dd50c016a8 (diff) | |
download | illumos-joyent-20120517.tar.gz |
Merge git.joyent.com:illumos-joyent20120517
Diffstat (limited to 'usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp')
-rw-r--r-- | usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp b/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp deleted file mode 100644 index 269463c6ef..0000000000 --- a/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp +++ /dev/null @@ -1,159 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -/** - * \file KMSAgentPKICommon.cpp - */ -#include <stdio.h> - -#include "SYSCommon.h" -#include "KMSAgentPKICommon.h" -#include "KMSAgentStringUtilities.h" - -#include "KMSAgent_direct.h" - - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -CPKI::CPKI() -{ - m_iKeyLength = DEFAULT_KEY_SIZE; - - // used for CA - m_pCACertificate = NULL; - m_pCAPrivateKey = NULL; -} - -// BEN - make these -// global lengths -int iLength1 = 0; -int iLength2 = 0; - -// THIS CAN'T BE STACK DATA - TOO BIG -static unsigned char aTempBuffer[MAX_CERT_SIZE + MAX_KEY_SIZE]; -#ifdef METAWARE -static char aNotherTempBuffer[50]; -#endif - -// used by StoreAgentPKI - KMSAgentStorage.cpp - -bool CPKI::ExportCertAndKeyToFile( - CCertificate* const i_pCertificate, - CPrivateKey* const i_pPrivateKey, - const char* const i_pcFileName, - const char* const i_sPassphrase, - EnumPKIFileFormat i_eFileFormat ) -{ - FATAL_ASSERT( i_pCertificate && i_pPrivateKey && i_pcFileName ); - - - memset( aTempBuffer, 0, MAX_CERT_SIZE + MAX_KEY_SIZE ); - -#ifdef KMSUSERPKCS12 - if ( i_eFileFormat == FILE_FORMAT_PKCS12 ) - { - if ( !i_pCertificate->SavePKCS12(aTempBuffer, - MAX_CERT_SIZE, - &iLength1, - i_pPrivateKey, - (char*)i_sPassphrase ) ) - { - return false; - } - } else { -#endif - - // Overloaded Save method implemented in KMSAgentPKICert.cpp - // this method saves Certificate to the temporary buffer, not a file - // but a side effect is to get the actual file length - if ( !i_pCertificate->Save(aTempBuffer, - MAX_CERT_SIZE, - &iLength1, /* returned - actual length - written */ - i_eFileFormat) ) - { - return false; - } - - // Overloaded Save method implemented in KMSAgentPKIKey.cpp - // this method saves keys to the temporary buffer, not a file, - // but a side effect is to get the actual file length - if ( !i_pPrivateKey->Save(aTempBuffer + iLength1, - MAX_KEY_SIZE, - &iLength2, /* returned - actual length - written */ - i_sPassphrase, - i_eFileFormat) ) - { - return false; - } - -#ifdef KMSUSERPKCS12 - } -#endif - - // now write the temporary buffer to a file - myFILE* pFile = fopen( i_pcFileName, "wb" ); - if ( pFile == NULL ) - { - return false; - } - -#ifdef KMSUSERPKCS12 -#ifdef K_SOLARIS_PLATFORM - int fd = fileno(pFile); - - /* Make sure this file is read/write for the OWNER only! */ - (void) fchmod(fd, 0600); -#endif -#endif - -#ifdef METAWARE - // write out the two file lengths - snprintf(aNotherTempBuffer, sizeof(aNotherTempBuffer), "iLength1=%x\n", iLength1); - fputs((const char*)aNotherTempBuffer, pFile); - - snprintf(aNotherTempBuffer, sizeof(aNotherTempBuffer), "iLength2=%x\n", iLength2); - fputs((const char*)aNotherTempBuffer, pFile); -#endif - - int iBytesWritten = fwrite( (const char*)aTempBuffer, // from - 1, // size - iLength1+iLength2, // actual file length - pFile ); // to-file - - fclose( pFile ); - - return ( iBytesWritten == (iLength1+iLength2) ); -} - - -CPKI::~CPKI() -{ - // empty -} - |