Mercurial > illumos > illumos-gate
annotate usr/src/lib/libkmsagent/common/KMSAgent_direct.h @ 12720:3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
6944296 Solaris needs a PKCS#11 provider to allow access to KMS keystore functionality
author | Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM> |
---|---|
date | Mon, 28 Jun 2010 16:04:11 -0700 |
parents | |
children |
rev | line source |
---|---|
12720
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
1 /* |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
2 * CDDL HEADER START |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
3 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
4 * The contents of this file are subject to the terms of the |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
5 * Common Development and Distribution License (the "License"). |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
6 * You may not use this file except in compliance with the License. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
7 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
9 * or http://www.opensolaris.org/os/licensing. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
10 * See the License for the specific language governing permissions |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
11 * and limitations under the License. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
12 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
13 * When distributing Covered Code, include this CDDL HEADER in each |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
15 * If applicable, add the following below this CDDL HEADER, with the |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
16 * fields enclosed by brackets "[]" replaced with your own identifying |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
17 * information: Portions Copyright [yyyy] [name of copyright owner] |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
18 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
19 * CDDL HEADER END |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
20 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
21 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
22 /* |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
23 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
24 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
25 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
26 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
27 * \file direct.h |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
28 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
29 * This file is included in KMSAgentStorage.cpp to provide file handling |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
30 * hooks. It also contains our EEPROM file handling functions. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
31 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
32 * HISTORY: |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
33 * 8/6/07 BJB Added code for 9840D encryption sectors |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
34 * 4/7/08 BJB Changed to remove 'file is junk' message - EVT |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
35 * didn't like it. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
36 * 4/24/08 BJB Added function call back to T10000/9840D code |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
37 * to lookup eeprom address - |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
38 * so it isn't a hardcoded value. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
39 * 05/09/08 BJB Added being more conservative about EEPROM so as to change |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
40 * frequency of 32CA problems |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
41 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
42 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
43 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
44 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
45 #ifndef KMSAGENT_DIRECT_H |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
46 #define KMSAGENT_DIRECT_H |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
47 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
48 #include <stdio.h> |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
49 #include <string.h> |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
50 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
51 #ifdef WIN32 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
52 #include <direct.h> |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
53 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
54 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
55 #define my_unlink(a) unlink(a) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
56 #define my_rmdir(a) rmdir(a) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
57 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
58 #ifndef METAWARE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
59 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
60 #define myFILE FILE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
61 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
62 #else // METAWARE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
63 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
64 #include "SYSCommon.h" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
65 #include "debug.h" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
66 #include <snprintf.h> |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
67 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
68 extern "C" void ecpt_trace_msg(ECPT_TRACE_ENTRY*,const char*,...); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
69 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
70 extern char st[256]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
71 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
72 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
73 #ifndef I_KNOW_REAL_NAMES |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
74 #undef fopen |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
75 #undef fclose |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
76 #undef fputs |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
77 #undef fgets |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
78 #undef fwrite |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
79 #undef fread |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
80 #undef unlink |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
81 #undef rmdir |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
82 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
83 #define fopen my_eeprom_fopen |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
84 #define fclose my_eeprom_fclose |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
85 #define fputs my_eeprom_fputs |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
86 #define fwrite my_eeprom_fwrite |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
87 #define fread my_eeprom_fread |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
88 #define fgets my_eeprom_fgets |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
89 #define unlink my_eeprom_unlink |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
90 #define rmdir my_eeprom_rmdir |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
91 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
92 #define my_eeprom_rmdir(a) (1) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
93 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
94 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
95 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
96 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
97 #include "KMSClientProfile.h" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
98 extern char KMSAgent_Version[KMS_MAX_VERSION_LENGTH]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
99 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
100 unsigned char volatile* eeprom_addr_lookup_FILESYSTEM_START_ADDR(void); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
101 unsigned int EEPROM_Sector_size(void); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
102 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
103 #define FILESYSTEM_SECTOR (eeprom_addr_lookup_FILESYSTEM_START_ADDR()) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
104 // was ((unsigned char volatile*)0xf20000) on 9840 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
105 // was ((unsigned char volatile*)0x41dc0000) on T10000 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
106 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
107 #define FILESYSTEM_SECTOR_SIZE (EEPROM_Sector_size()) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
108 // was hardcoded 0x20000 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
109 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
110 #define EEPROM_ERASED_BYTE 0xFF |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
111 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
112 /* size of a file allowed (not counting the name) */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
113 #define EEPROM_FILE_SECT_SIZE 0x1800 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
114 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
115 /* size of a file name allowed (+ the null) */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
116 #define EEPROM_FNAME_SIZE 0x80 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
117 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
118 // 1000h = 4096d |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
119 #define EEPROM_BLOCK_SIZE (EEPROM_FILE_SECT_SIZE - EEPROM_FNAME_SIZE - 4) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
120 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
121 /* number of 'files' available */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
122 #define FTABLE_SIZE 0x5 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
123 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
124 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
125 #define UCHAR8 unsigned char |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
126 #define UINT32 unsigned long |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
127 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
128 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
129 extern "C" unsigned long |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
130 EEPROM_Sector_Erase( unsigned char volatile *sector_address ); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
131 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
132 extern "C" unsigned long |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
133 Flash_Write( UCHAR8 *destinationP, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
134 UCHAR8 *sourceP, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
135 UINT32 byteCount); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
136 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
137 extern "C" unsigned long |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
138 Flash_Read( UCHAR8 *dstP, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
139 UCHAR8 *srcP, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
140 UINT32 byteCount); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
141 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
142 /* a eeprom file */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
143 struct eepromBlockStruct |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
144 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
145 unsigned long fsize; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
146 char fname[EEPROM_FNAME_SIZE]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
147 unsigned char fdata[EEPROM_BLOCK_SIZE]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
148 }; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
149 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
150 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
151 struct fileSystem |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
152 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
153 struct eepromBlockStruct ftable[FTABLE_SIZE]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
154 /* what level of toolkit wrote this - for |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
155 future compatibility */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
156 char writingversion[KMS_MAX_VERSION_LENGTH+1]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
157 }; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
158 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
159 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
160 #define MODE_WRITE 0x01 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
161 #define MODE_READ 0x02 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
162 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
163 #define MYFILE_CLOSED 0x0 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
164 #define MYFILE_OPEN_READ 0x1 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
165 #define MYFILE_OPEN_WRITE 0x2 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
166 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
167 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
168 /* an open file */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
169 typedef struct fileStruct |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
170 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
171 unsigned char *readptr; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
172 unsigned long readsize; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
173 unsigned char *writeptr; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
174 struct eepromBlockStruct *memptr; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
175 unsigned long mode; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
176 unsigned long file_number; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
177 } myFILE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
178 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
179 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
180 extern "C" myFILE *my_eeprom_fopen (const char *filename, const char *mode); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
181 extern "C" int my_eeprom_fclose (myFILE *stream); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
182 extern "C" int my_eeprom_fputs (const char *s, myFILE *stream); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
183 extern "C" int my_eeprom_fwrite (const char *s, int size, int nobj, myFILE *f); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
184 extern "C" int my_eeprom_fread (char *s, int size, int nobj, myFILE *f); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
185 extern "C" char *my_eeprom_fgets (char *s, int n, myFILE *stream); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
186 extern "C" int my_eeprom_unlink (const char *filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
187 extern "C" int my_eeprom_fsys_erase(void); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
188 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
189 #ifndef FALSE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
190 #define FALSE 0 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
191 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
192 #ifndef TRUE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
193 #define TRUE 1 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
194 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
195 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
196 #ifdef DEFINE_STORAGE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
197 /* ram copy of the file system */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
198 struct fileSystem ramFileSystem; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
199 int file_read = FALSE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
200 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
201 /* file state - open/closed/etc */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
202 unsigned long fstate[FTABLE_SIZE] = {MYFILE_CLOSED, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
203 MYFILE_CLOSED, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
204 MYFILE_CLOSED, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
205 MYFILE_CLOSED, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
206 MYFILE_CLOSED}; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
207 #else |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
208 /* ram copy of the file system */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
209 extern struct fileSystem ramFileSystem; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
210 extern int file_read; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
211 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
212 /* file state - open/closed/etc */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
213 extern unsigned long fstate[FTABLE_SIZE]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
214 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
215 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
216 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
217 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
218 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
219 #ifdef DEFINE_STORAGE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
220 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
221 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
222 extern "C" unsigned long |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
223 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
224 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
225 /* UNIT TEST */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
226 int TESTV = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
227 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
228 /* UNIT TEST */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
229 #define MY_FLASH_READ(a,b,c) \ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
230 Flash_Read(a,b,c); \ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
231 if (TESTV++ < 5) { \ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
232 ramFileSystem.ftable[0].fname[0] = EEPROM_ERASED_BYTE; \ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
233 ramFileSystem.ftable[1].fsize = EEPROM_BLOCK_SIZE+1; \ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
234 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
235 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
236 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
237 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
238 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
239 * my_eeprom_fopen() |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
240 * my filesystem fileopen |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
241 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
242 extern "C" myFILE *my_eeprom_fopen(const char *filename, const char *mode) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
243 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
244 int i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
245 myFILE *file; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
246 int open_for_write = TRUE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
247 static int Firsttime = TRUE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
248 int retries = 100; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
249 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
250 ECPT_TRACE_ENTRY *trace = NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
251 ECPT_TRACE( trace, my_eeprom_fopen ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
252 ecpt_trace_msg( trace, "file %s", (char*)filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
253 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
254 FATAL_ASSERT(filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
255 FATAL_ASSERT(mode); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
256 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
257 if ( (strcmp(mode,"wb") == 0) || |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
258 (strcmp(mode,"w") == 0)) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
259 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
260 // write |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
261 open_for_write = TRUE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
262 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
263 else if ( (strcmp(mode,"r") == 0) || |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
264 (strcmp(mode,"rb") == 0) ) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
265 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
266 // read binary |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
267 open_for_write = FALSE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
268 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
269 else |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
270 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
271 FATAL_APPLICATION_STATE("my_eeprom_fopen : Illegal mode"); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
272 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
273 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
274 /* read the file table from eeprom? */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
275 if (!file_read) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
276 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
277 RETRY: |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
278 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
279 MY_FLASH_READ((unsigned char *)&ramFileSystem, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
280 (unsigned char *)FILESYSTEM_SECTOR, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
281 sizeof(ramFileSystem)); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
282 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
283 /* Audit the filesystem - if it looks junked, reclaim bad files */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
284 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
285 for (i=0; i < FTABLE_SIZE; i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
286 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
287 if ( (ramFileSystem.ftable[i].fname[0] == EEPROM_ERASED_BYTE) || |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
288 (ramFileSystem.ftable[i].fsize > EEPROM_BLOCK_SIZE) ) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
289 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
290 /* if this looks bad, don't accept this outcome until |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
291 100 retries */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
292 if (retries-- > 0) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
293 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
294 ecpt_trace_msg( trace, "file was junk - retrying %s", (char*)filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
295 log_error_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
296 "KMSAgent_direct::fopen file %d is junk - (name %x, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
297 "size %x, data %x) RETRYING \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
298 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
299 ramFileSystem.ftable[i].fname[0], |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
300 ramFileSystem.ftable[i].fsize , |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
301 ramFileSystem.ftable[i].fdata[0]); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
302 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
303 goto RETRY; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
304 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
305 else |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
306 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
307 ecpt_trace_msg( trace, "file was junk - formatting %s", (char*)filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
308 log_error_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
309 "KMSAgent_direct::fopen file %d is junk - (name %x, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
310 "size %x, data %x) formatting it\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
311 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
312 ramFileSystem.ftable[i].fname[0], |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
313 ramFileSystem.ftable[i].fsize , |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
314 ramFileSystem.ftable[i].fdata[0]); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
315 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
316 /* set data to reasonable starting values */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
317 ramFileSystem.ftable[i].fname[0] = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
318 ramFileSystem.ftable[i].fsize = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
319 ramFileSystem.ftable[i].fdata[0] = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
320 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
321 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
322 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
323 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
324 } /* for */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
325 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
326 file_read = TRUE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
327 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
328 } /* !file read */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
329 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
330 /* read the file table */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
331 for (i=0; i < FTABLE_SIZE; i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
332 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
333 /* compare filename to ram copy filename */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
334 if (strcmp(filename, (const char *)ramFileSystem.ftable[i].fname) == 0) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
335 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
336 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
337 if (fstate[i] != MYFILE_CLOSED) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
338 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
339 log_printf("KMSAgent_direct::fopen FN=%s file matches, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
340 "FILE %d WAS ALREADY OPEN for %s with mode %s" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
341 "file size is %d \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
342 filename, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
343 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
344 (fstate[i] == MYFILE_OPEN_WRITE ? "WRITE": "READ"), |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
345 mode, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
346 ramFileSystem.ftable[i].fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
347 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
348 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
349 /* create a new ramfile handle */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
350 file = malloc(sizeof(myFILE)); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
351 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
352 /* since file is being rewritten, it is now size 0 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
353 if (open_for_write) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
354 ramFileSystem.ftable[i].fsize = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
355 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
356 /* remember the file is open */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
357 fstate[i]= open_for_write ? MYFILE_OPEN_WRITE : MYFILE_OPEN_READ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
358 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
359 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
360 /* if filename matches, set file pointers to it */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
361 file->writeptr = file->readptr = ramFileSystem.ftable[i].fdata; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
362 file->memptr = &ramFileSystem.ftable[i]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
363 file->readsize = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
364 file->mode = open_for_write ? MODE_WRITE : MODE_READ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
365 file->file_number = i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
366 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
367 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
368 log_printf("KMSAgent_direct::fopen FN=%s file matches, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
369 "opening existing file number %d with mode %s" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
370 "file size is %d \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
371 filename, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
372 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
373 mode, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
374 ramFileSystem.ftable[i].fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
375 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
376 break; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
377 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
378 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
379 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
380 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
381 /* if no existing entry was found, assign a new entry to this filename */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
382 if (i == FTABLE_SIZE) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
383 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
384 /* couldn't find an old file and opened for read so return NULL */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
385 if (open_for_write == FALSE) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
386 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
387 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
388 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
389 log_printf("KMSAgent_direct::fopen FN=%s no file match, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
390 "file opened for read so return NULL %d\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
391 filename, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
392 i); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
393 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
394 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
395 return NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
396 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
397 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
398 /* find a free file pointer */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
399 for (i=0; i < FTABLE_SIZE ; i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
400 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
401 /* empty data will be 0xffffffff since it was copied |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
402 straight from EEPROM */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
403 if (ramFileSystem.ftable[i].fname[0] == '\0') |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
404 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
405 log_printf("KMSAgent_direct::fopen FN=%s no file match, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
406 "opening new file %d\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
407 filename, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
408 i); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
409 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
410 /* give it a filename - marks this as in use */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
411 strcpy ((char *)ramFileSystem.ftable[i].fname, filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
412 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
413 /* set filesize to zero */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
414 ramFileSystem.ftable[i].fsize = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
415 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
416 /* remember the file is open */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
417 fstate[i]= open_for_write ? MYFILE_OPEN_WRITE : MYFILE_OPEN_READ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
418 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
419 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
420 /* create a new ramfile handle */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
421 file = malloc(sizeof(myFILE)); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
422 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
423 /* if filename matches, set file pointers to it */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
424 file->writeptr = file->readptr = ramFileSystem.ftable[i].fdata; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
425 file->memptr = &ramFileSystem.ftable[i]; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
426 file->readsize = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
427 file->mode = open_for_write ? MODE_WRITE : MODE_READ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
428 file->file_number = i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
429 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
430 break; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
431 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
432 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
433 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
434 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
435 if (i == FTABLE_SIZE) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
436 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
437 log_error_printf("KMSAgent_direct::fopen FN=%s no free files \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
438 filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
439 /* no free entries - bail */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
440 return NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
441 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
442 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
443 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
444 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
445 /* return pointer to the myFILE struct created */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
446 return file; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
447 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
448 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
449 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
450 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
451 * my_eeprom_fclose() |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
452 * my filesystem fileclose |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
453 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
454 extern "C" int my_eeprom_fclose(myFILE *f) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
455 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
456 ECPT_TRACE_ENTRY *trace = NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
457 ECPT_TRACE( trace, my_eeprom_fclose ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
458 ecpt_trace_msg( trace, "entered"); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
459 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
460 FATAL_ASSERT(f); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
461 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
462 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
463 log_printf("KMSAgent_direct::fclose FN=%s, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
464 "FILE %d " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
465 "file size is %d \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
466 ramFileSystem.ftable[f->file_number].fname, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
467 f->file_number, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
468 ramFileSystem.ftable[f->file_number].fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
469 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
470 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
471 if (fstate[f->file_number] == MYFILE_CLOSED) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
472 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
473 log_error_printf("KMSAgent_direct::fclose FN=%s, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
474 "FILE %d WAS ALREADY CLOSED " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
475 "file size is %d \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
476 ramFileSystem.ftable[f->file_number].fname, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
477 f->file_number, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
478 ramFileSystem.ftable[f->file_number].fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
479 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
480 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
481 /* remember the file is closed */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
482 fstate[f->file_number]= MYFILE_CLOSED; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
483 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
484 /* don't rewrite eeprom unless file was opened for writing */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
485 if (f->mode == MODE_WRITE) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
486 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
487 /* Erase the sector we are rewriting */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
488 EEPROM_Sector_Erase( (unsigned char*)FILESYSTEM_SECTOR ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
489 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
490 /* remember the version of toolkit that wrote this filesystem |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
491 (for any future compatibility problems). */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
492 strncpy(ramFileSystem.writingversion, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
493 KMSAgent_Version, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
494 sizeof(KMSAgent_Version)); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
495 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
496 /* flush the memory indicated by myFILE * out to EEPROM */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
497 /* see boot_eeprom.c for details on Flash_Write */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
498 Flash_Write ((unsigned char*)FILESYSTEM_SECTOR, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
499 (unsigned char*)&ramFileSystem, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
500 FILESYSTEM_SECTOR_SIZE); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
501 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
502 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
503 /* delete the placeholder file */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
504 free(f); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
505 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
506 return 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
507 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
508 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
509 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
510 * my_eeprom_fputs() |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
511 * my filesystem put string |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
512 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
513 extern "C" int my_eeprom_fputs(const char *s, myFILE *f) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
514 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
515 /* put the string to the memory indicated by myFILE */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
516 int i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
517 ECPT_TRACE_ENTRY *trace = NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
518 ECPT_TRACE( trace, my_eeprom_fputs ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
519 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
520 ecpt_trace_msg (trace, "\nmy_eeprom_fputs : Entered"); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
521 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
522 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
523 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
524 "\nKMSAgent_direct::my_eeprom_fputs " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
525 "f->writeptr =%x " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
526 "f->readptr=%x " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
527 "f->readsize=%x " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
528 "f->memptr=%x" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
529 "f->memptr->fsize=%x\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
530 f->writeptr, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
531 f->readptr, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
532 f->readsize, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
533 f->memptr, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
534 f->memptr->fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
535 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
536 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
537 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
538 FATAL_ASSERT(s); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
539 FATAL_ASSERT(f); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
540 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
541 for (i=0;;i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
542 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
543 /* end of input string? quit */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
544 if (*s == '\0') |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
545 break; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
546 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
547 /* end of max file memory, quit */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
548 if ((unsigned char*)s >= |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
549 (unsigned char*)(f->memptr + sizeof(struct eepromBlockStruct))) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
550 break; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
551 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
552 /* copy */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
553 *(f->writeptr) = *s++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
554 f->writeptr++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
555 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
556 /* increment the filesize */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
557 f->memptr->fsize += 1; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
558 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
559 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
560 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
561 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
562 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
563 "\nKMSAgent_direct::fputs wrote %d chars, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
564 "filesize is %d\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
565 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
566 f->memptr->fsize ); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
567 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
568 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
569 /* return how many chars were written */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
570 return i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
571 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
572 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
573 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
574 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
575 * my_eeprom_fwrite() |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
576 * my filesystem put string |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
577 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
578 extern "C" int my_eeprom_fwrite(const char *s, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
579 int size, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
580 int nobj, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
581 myFILE *f) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
582 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
583 /* put the string to the memory indicated by myFILE */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
584 int i,j; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
585 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
586 ECPT_TRACE_ENTRY *trace = NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
587 ECPT_TRACE( trace, my_eeprom_fwrite ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
588 ecpt_trace_msg ( trace, "Entered"); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
589 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
590 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
591 "\nKMSAgent_direct::my_eeprom_fputs " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
592 "f->writeptr =%x " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
593 "f->readptr=%x " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
594 "f->readsize=%x " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
595 "f->memptr=%x" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
596 "f->memptr->fsize=%x\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
597 f->writeptr, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
598 f->readptr, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
599 f->readsize, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
600 f->memptr, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
601 f->memptr->fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
602 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
603 FATAL_ASSERT(s); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
604 FATAL_ASSERT(f); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
605 FATAL_ASSERT((size*nobj) > 0); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
606 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
607 for (i=0; i<nobj; i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
608 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
609 for (j=0; j<size; j++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
610 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
611 /* end of max file memory, quit */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
612 if ((unsigned char*)s >= |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
613 (unsigned char*)(f->memptr + sizeof(struct eepromBlockStruct))) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
614 goto DONE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
615 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
616 /* copy */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
617 *(f->writeptr) = *s++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
618 f->writeptr++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
619 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
620 /* increment the filesize */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
621 f->memptr->fsize += 1; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
622 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
623 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
624 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
625 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
626 DONE: |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
627 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
628 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
629 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
630 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
631 "\nKMSAgent_direct::fwrite wrote %d chars, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
632 "filesize is %d\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
633 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
634 f->memptr->fsize ); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
635 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
636 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
637 /* return how many objects were written */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
638 return i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
639 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
640 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
641 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
642 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
643 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
644 * my_eeprom_fgets() |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
645 * my filesystem getstring |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
646 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
647 extern "C" char *my_eeprom_fgets(char *s, int n, myFILE *f) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
648 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
649 /* put the string to the memory indicated by myFILE */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
650 int i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
651 char *tmp = s; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
652 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
653 ECPT_TRACE_ENTRY *trace = NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
654 ECPT_TRACE( trace, my_eeprom_fgets ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
655 ecpt_trace_msg (trace, "entered"); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
656 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
657 FATAL_ASSERT(s); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
658 FATAL_ASSERT(n > 0); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
659 FATAL_ASSERT(f); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
660 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
661 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
662 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
663 "\nKMSAgent_direct::my_eeprom_fgets from file %s " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
664 "fileptr %x " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
665 "readptr = %x " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
666 "readsize = %d " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
667 "filesize = %d \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
668 f->memptr->fname, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
669 f, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
670 f->readptr, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
671 f->readsize, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
672 f->memptr->fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
673 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
674 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
675 /* get up to n-1 (and a \0) chars */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
676 for (i=0; i < n; i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
677 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
678 /* end of read line? quit */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
679 if (*f->readptr == '\n') |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
680 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
681 /* increment the number of bytes read */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
682 f->readptr++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
683 f->readsize++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
684 break; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
685 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
686 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
687 /* trying to read beyond what was written? quit */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
688 if (f->readsize > |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
689 f->memptr->fsize) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
690 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
691 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
692 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
693 "\nKMSAgent_direct::fgets eof after %d chars, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
694 "readsize is %d " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
695 "filesize is %d\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
696 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
697 f->readsize, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
698 f->memptr->fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
699 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
700 return NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
701 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
702 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
703 /* trying to read beyond max file memory, quit */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
704 if ((unsigned char*)f->readptr >= |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
705 (unsigned char*)(f->memptr + sizeof(struct eepromBlockStruct))) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
706 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
707 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
708 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
709 "\nKMSAgent_direct::fgets end of max file after %d chars " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
710 "readsize is %d " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
711 "filesize is %d\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
712 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
713 f->readsize, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
714 f->memptr->fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
715 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
716 /* EOF or error is signalled by NULL return */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
717 return NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
718 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
719 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
720 /* copy a char */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
721 *tmp++ = *f->readptr; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
722 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
723 /* increment the number of bytes read */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
724 f->readptr++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
725 f->readsize++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
726 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
727 } /* for */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
728 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
729 /* terminate the returned string with a 0, but not a \n */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
730 *tmp='\0'; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
731 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
732 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
733 /* terminate returned string after a non-absurd number of chars |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
734 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
735 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
736 "\nKMSAgent_direct::fgets string [%s] " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
737 "end of line after %d chars " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
738 "readsize is %d " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
739 "filesize is %d\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
740 s, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
741 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
742 f->readsize, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
743 f->memptr->fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
744 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
745 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
746 /* on success, return the original pointer */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
747 return s; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
748 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
749 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
750 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
751 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
752 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
753 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
754 * my_eeprom_fread() |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
755 * my filesystem read a file |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
756 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
757 extern "C" int my_eeprom_fread(char *s, int size, int nobj, myFILE *f) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
758 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
759 /* put the string to the memory indicated by myFILE */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
760 int i,j; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
761 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
762 ECPT_TRACE_ENTRY *trace = NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
763 ECPT_TRACE( trace, my_eeprom_fread ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
764 ecpt_trace_msg (trace, "entered"); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
765 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
766 FATAL_ASSERT(s); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
767 FATAL_ASSERT(f); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
768 FATAL_ASSERT((size*nobj) > 0); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
769 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
770 for (i=0; i<nobj; i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
771 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
772 for (j=0; j<size; j++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
773 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
774 /* end of written file memory, quit */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
775 if ( (unsigned char*) s >= |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
776 (unsigned char*) (f->memptr + f->memptr->fsize) ) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
777 goto DONE; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
778 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
779 /* copy */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
780 *s++ = *(f->readptr); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
781 f->readptr++; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
782 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
783 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
784 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
785 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
786 DONE: |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
787 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
788 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
789 log_printf( |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
790 "\nKMSAgent_direct::fread read %d chars, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
791 "filesize is %d\n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
792 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
793 f->memptr->fsize ); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
794 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
795 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
796 /* return how many objects were written */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
797 return i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
798 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
799 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
800 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
801 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
802 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
803 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
804 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
805 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
806 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
807 * my_eeprom_unlink() - delete the file named |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
808 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
809 extern "C" int my_eeprom_unlink(const char *filename) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
810 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
811 int i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
812 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
813 ECPT_TRACE_ENTRY *trace = NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
814 ECPT_TRACE( trace, my_eeprom_fgets ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
815 ecpt_trace_msg (trace, "Entered fn=%s", (char*)filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
816 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
817 /* assume the file is closed */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
818 FATAL_ASSERT(filename); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
819 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
820 /* read the file table */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
821 for (i=0; i < FTABLE_SIZE; i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
822 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
823 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
824 if (fstate[i] != MYFILE_CLOSED) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
825 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
826 log_error_printf("KMSAgent_direct::unlink FN=%s file matches, " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
827 "FILE %d WAS STILL OPEN for %s" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
828 "file size is %d \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
829 filename, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
830 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
831 (fstate[i] == MYFILE_OPEN_WRITE ? "WRITE": "READ"), |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
832 ramFileSystem.ftable[i].fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
833 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
834 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
835 /* compare input filename to ram copy filename */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
836 if (strcmp(filename, (const char*)ramFileSystem.ftable[i].fname) == 0) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
837 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
838 /* if filename matches, zero it out to delete the file */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
839 ramFileSystem.ftable[i].fname[0] = '\0'; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
840 ramFileSystem.ftable[i].fsize = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
841 ramFileSystem.ftable[i].fdata[0] = 1; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
842 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
843 /* remember the file is closed */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
844 fstate[i]= MYFILE_CLOSED; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
845 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
846 EEPROM_Sector_Erase( FILESYSTEM_SECTOR ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
847 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
848 /* remember the version of toolkit that wrote this filesystem |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
849 (for any future compatibility problems). */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
850 strncpy(ramFileSystem.writingversion, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
851 KMSAgent_Version, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
852 sizeof(KMSAgent_Version)); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
853 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
854 /* flush the memory indicated by myFILE * out to EEPROM */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
855 Flash_Write ((unsigned char*)FILESYSTEM_SECTOR, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
856 (unsigned char*)&ramFileSystem, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
857 FILESYSTEM_SECTOR_SIZE); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
858 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
859 break; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
860 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
861 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
862 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
863 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
864 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
865 log_printf ("my_eeprom_unlink : returning"); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
866 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
867 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
868 if (i == FTABLE_SIZE) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
869 return -1; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
870 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
871 /* success */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
872 return 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
873 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
874 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
875 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
876 /** |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
877 * my_eeprom_fsys_erase() - delete all files |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
878 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
879 extern "C" int my_eeprom_fsys_erase(void) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
880 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
881 int i; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
882 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
883 ECPT_TRACE_ENTRY *trace = NULL; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
884 ECPT_TRACE( trace, my_eeprom_fread ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
885 ecpt_trace_msg (trace, "my_eeprom_fsys_erase : entering "); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
886 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
887 /* read the file table */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
888 for (i=0; i < FTABLE_SIZE; i++) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
889 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
890 if (fstate[i] != MYFILE_CLOSED) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
891 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
892 log_error_printf("KMSAgent_direct::fsys_erase FN=%s file " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
893 "FILE %d WAS STILL OPEN for %s " |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
894 "file size is %d \n", |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
895 ramFileSystem.ftable[i].fname, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
896 i, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
897 (fstate[i] == MYFILE_OPEN_WRITE ? "WRITE": "READ"), |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
898 ramFileSystem.ftable[i].fsize); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
899 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
900 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
901 /* zero filename out to delete the file */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
902 ramFileSystem.ftable[i].fname[0] = '\0'; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
903 ramFileSystem.ftable[i].fsize = 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
904 ramFileSystem.ftable[i].fdata[0] = 2; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
905 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
906 /* remember the file is closed */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
907 fstate[i]= MYFILE_CLOSED; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
908 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
909 EEPROM_Sector_Erase( FILESYSTEM_SECTOR ) ; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
910 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
911 /* remember the version of toolkit that wrote this filesystem |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
912 (for any future compatibility problems). */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
913 strncpy(ramFileSystem.writingversion, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
914 KMSAgent_Version, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
915 sizeof(KMSAgent_Version)); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
916 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
917 /* flush the memory indicated by myFILE * out to EEPROM */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
918 Flash_Write ((unsigned char*)FILESYSTEM_SECTOR, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
919 (unsigned char*)&ramFileSystem, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
920 FILESYSTEM_SECTOR_SIZE); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
921 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
922 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
923 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
924 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
925 #ifdef DEBUG |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
926 log_printf ("\nmy_eeprom_fsys_erase : returning"); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
927 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
928 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
929 if (i == FTABLE_SIZE) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
930 return -1; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
931 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
932 /* success */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
933 return 0; |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
934 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
935 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
936 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
937 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
938 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
939 #endif // DEFINE_STORAGE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
940 #endif // METAWARE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
941 #endif |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
942 |