+++ /dev/null
-/*
- * Copyright (c) 2005,2011-2014 Apple Inc. All Rights Reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-
-/*
- * TrustSettingsUtils.cpp - Utility routines for TrustSettings module
- *
- */
-
-#include "TrustSettingsUtils.h"
-#include <Security/cssmtype.h>
-#include <Security/cssmapple.h>
-#include <Security/oidscert.h>
-#include <assert.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/fcntl.h>
-
-/*
- * Preferred location for user root store is ~/Library/Keychain/UserRootCerts.keychain.
- * If we're creating a root store and there is a file there we iterate thru
- * ~/Library/Keychains/UserRootCerts_N.keychain, 0 <= N <= 10.
- */
-#define kSecUserRootStoreBase "~/Library/Keychains/UserRootCerts"
-#define kSecUserRootStoreExtension ".keychain"
-
-namespace Security {
-
-namespace KeychainCore {
-
-/*
- * Read entire file.
- */
-int tsReadFile(
- const char *fileName,
- Allocator &alloc,
- CSSM_DATA &fileData) // mallocd via alloc and RETURNED
-{
- int rtn;
- int fd;
- struct stat sb;
- unsigned size;
-
- fileData.Data = NULL;
- fileData.Length = 0;
- fd = open(fileName, O_RDONLY, 0);
- if(fd < 0) {
- return errno;
- }
- rtn = fstat(fd, &sb);
- if(rtn) {
- goto errOut;
- }
- size = (unsigned)sb.st_size;
- fileData.Data = (uint8 *)alloc.malloc(size);
- if(fileData.Data == NULL) {
- rtn = ENOMEM;
- goto errOut;
- }
- rtn = (int)lseek(fd, 0, SEEK_SET);
- if(rtn < 0) {
- goto errOut;
- }
- rtn = (int)read(fd, fileData.Data, (size_t)size);
- if(rtn != (int)size) {
- rtn = EIO;
- }
- else {
- rtn = 0;
- fileData.Length = size;
- }
-errOut:
- close(fd);
- return rtn;
-}
-
-} /* end namespace KeychainCore */
-
-} /* end namespace Security */