1 #
2 # CDDL HEADER START
3 #
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21
22 #
23 # Copyright 2008 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
25 #
26 # ident "@(#)README 1.4 08/03/13 SMI"
27 #
28
29 #
30 # README file for KMF STC2 test suite.
31 #
32
33 1. INTRODUCTION
34 2. SYSTEM REQUIREMENTS
35 3. RUNNING TESTS
36 3.1 Installing Test Suite and Tools Packages
37 3.2 Configuring the Test System to Run the Test Suite
38 3.3 Executing Tests and Examining Results
39 3.4 Building Test Binaries from Source Code
40 4. TEST COVERAGE
41 5. NOTES
42 6. CONTACT US
43
44
45 1. INTRODUCTION
46
47 This test suite is a basic functionality test of the KMF (Key Management
48 Framework) library, and of the pktool(1) and kmfcfg(1) utilities.
49
50 This test suite uses STF, the second generation STC harness and operates
51 in the standard manner implemented by STF. Please see the "STF User's
52 Guide" for more information on STF.
53
54
55 2. SYSTEM REQUIREMENTS
56
57 This version of the KMF test suite requires build snv_74 or later of
58 Nevada. The test suite can run on all architectures supported by
59 Solaris.
60
61 (STC_VERSION 1.8 and earlier versions of the KMF test suite require
62 build snv_73 or earlier).
63
64 The test suite needs 'root' user access to the local system and may
65 ask for the system root password to be provided for this.
66
67 Access to an external HTTP URL (and, depending on your network
68 and access to an HTTP proxy server) may be required for running
69 the "kmf_download_cert" and "kmf_download_crl" tests. See the
70 NOTES section for details.
71
72
73 3. TEST SUITE INSTALLATION AND EXECUTION
74
75 As stated previously, this suite uses the STF harness. The following
76 packages are required to run this test:
77 SUNWstc-stf: the STF harness and test tools
78 SUNWstc-checkenv: the checkenv environment checking tool
79 SUNWstc-kmf: this test suite
80
81 In addition, the SFWexpct (expect tool) package may be optionally
82 installed on the system (NOTE: as of snv_84, expect is installed in
83 /opt/sfw/bin by default).
84
85 3.1 Installing Test Suite and Tools Packages
86
87 To install the test suite (and the tools it depends on), first remove
88 any existing installation of the test suite or tools from the system
89 and then install the new ones. For example,
90
91 # pkgrm SUNWstc-stf SUNWstc-checkenv SUNWstc-kmf
92 # pkgadd -d <package-location> SUNWstc-stf
93 # pkgadd -d <package-location> SUNswtc-checkenv
94 # pkgadd -d <package-location> SUNWstc-kmf
95
96 where <package-location> refers to the PATH where the respective
97 packages reside. The packages will be installed under /opt/<package-name>.
98
99 3.2 Configuring the Test System to Run the Test Suite
100
101 Before any tests can be executed, the target test system must first be
102 configured to run the test suite. To do this, add the STF tools to your
103 PATH, tell STF where to find the checkenv tool, and run stf_configure.
104 All this must be done as a non-root user. For example,
105
106 $ export PATH=/opt/SUNWstc-stf/bin/`uname -p`:$PATH
107 $ export STF_CHECKENV_PATH=/opt/SUNWstc-checkenv
108 $ stf_configure
109
110 If you are prompted for the system root password, it MUST be provided,
111 or the configuration step will not succeed.
112
113 Depending on your network, you may additionally need to set and export
114 all the environment variables described in the NOTES section below.
115 These environment variables may be set in any one of the methods
116 supported by stf_configure. See the STF User's Guide for details.
117
118 3.3 Executing Tests and Examining Results
119
120 To execute the tests, the 'stf_configure' step must have passed without
121 error. Once again, as a non-root user, add STF tools to your PATH, and
122 tell STF where to find checkenv. Then invoke stf_execute. For example,
123
124 $ export PATH=/opt/SUNWstc-stf/bin/`uname -p`:$PATH
125 $ export STF_CHECKENV_PATH=/opt/SUNWstc-checkenv
126 $ stf_execute
127
128 Normally this test suite is finished in about 50 minutes on Sun-Fire-V240.
129
130 Overrideable configuration variables provided in the stf_configure phase
131 may be overridden using 'stf_execute -c'. For details of the '-c'
132 option and more, see the STF User's Guide.
133
134 The results of test execution will be at /var/tmp/SUNWstc-kmf/results.
135 Detailed journaling output is placed in files named "journal.*" in the
136 results directory (see the STF User's Guide on how to override journal
137 file or results directory names.) stf_execute also prints execution
138 status summary to the terminal whence it was invoked.
139
140 The stf_filter utility can be used to see a summary of test results,
141 like so:
142
143 $ stf_filter <journal_file_name>
144
145 The output from stf_filter is a two column list of executed test cases
146 and their final result upon completion.
147
148 3.4 Building Test Binaries from Source Code
149
150 Executing tests using precompiled test suite packages is the method we
151 strongly recommend. However, if, for some reason, you need to build
152 test suite binaries from source, simply do the following:
153
154 . Install STF
155 . Obtain the test suite source
156 . Invoke stf_build followed by stf_build package
157
158 (a) Install STF
159
160 Install the precompiled STF package.
161
162 # pkgrm SUNWstc-stf
163 # pkgadd -d <package-location> SUNWstc-stf
164
165 where <package-location> is the location of the SUNWstc-stf package.
166 While it is possible to build STF also from source code, describing
167 that is beyond the scope of this README.
168
169 (b) Obtain the Test Suite Source
170
171 Obtain the test suite source using source code management commands
172 (TeamWare, Hg, ...) or by other methods such as extracting a tarball,
173 exploding a cpio file, etc. The example below assumes that TeamWare
174 is used and that the test suite source code resides in a workspace
175 named "/gates/onnv-stc2"
176
177 $ workspace create `pwd`/kmftest
178 $ workspace parent -p /gates/onnv-stc2 -w `pwd`/kmftest
179 $ cd kmftest
180 $ bringover src/suites/security/kmf
181
182 (c) Build Test Suite Binaries
183
184 $ umask 0 # optional, recommended
185 $ export PATH=/opt/SUNWstc-stf/bin/`uname -p`:$PATH
186 $ cd src/suites/security/kmf
187 $ stf_build
188 ...
189 ... (many lines of 'make' and shell output ensue)
190 ...
191
192 The above command, if successful, will build the KMF test suite's
193 'proto' directory.
194
195 $ stf_build package
196
197 This will build the package supported by the current machine's system
198 architecure (i.e., if building on an x64 system, packages relevant to
199 the "i386" architecture will be built.)
200
201 Once the test suite package has been built, install the package as
202 indicated in the preceding section(s) and execute tests as described.
203
204
205 4. TEST COVERAGE
206
207 The KMF project provides a single programming interface, a unified set
208 of administrative tools, and a policy enforcement system on PKCS#11, NSS
209 and OpenSSL keystore.
210
211 This test suite covers following KMF library tests on PKCS#11, NSS and
212 OpenSSL keystore:
213 - Positive tests of KMF library key-, certficiate-, crl-, csr- and
214 policy-related APIs. Tests in this category are located at
215 tests/kmf_api/kmf_positive
216 - Multi-threaded stress tests of the KMF library. Tests in this
217 category are located at tests/kmf_api/kmf_stress
218 - Negative tests of all KMF APIs. Tests in this category are located
219 at tests/kmf_api/kmf_* (i.e., all subdirectories of tests/kmf_api,
220 kmf_positive and kmf_stress)
221
222 This test suite covers following usage of the pktool(1) command:
223 - listing all visible PKCS#11 and NSS tokens
224 - setting the passphrase to the PKCS#11 or NSS token
225 - generating public keypairs and self-signed certificates
226 - generating an asymmetric keypair and a CSR file
227 - generating symmetric keys
228 - listing certificates, keys and CRLs
229 - deleting certificates, keys and CRLs
230 - importing certificates, keys and CRLs
231 - exporting PKCS12, pem or der files that contain certificates or keys
232 - downloading certificates or CRLs from a webbased services
233 - displaying help information
234 Tests in this category are located under tests/pktool
235
236 This test suite covers following usage of the kmfcfg(1) command:
237 - listing policies
238 - deleting policies
239 - creating policies
240 - modifying policies
241 - importing policies
242 - exporting policies
243 - displaying help information
244 - pluggability configure
245 Tests in this category are located under tests/kmfcfg
246
247
248 5. NOTES
249
250 The kmf_download_cert and kmf_download_crl tests (under tests/kmf_api)
251 are designed to download certificate/crl files from an external HTTP URI.
252 This test suite provides a default URI and a proxy server to be used by
253 these tests, but if these defaults are not appropriate for the system
254 under test, the kmf_download_cert and kmf_download_crl tests will fail.
255 If this happens, set the following variables and re-run stf_configure:
256
257 . KMF_CERTURI -- URI whence to download certificates
258 . KMF_CRLURI -- URI whence to download crls
259 . KMF_PROXY_SET -- whether a proxy server is required
260 . KMF_PROXY -- proxy server. Makes sense only if KMF_PROXY_SET is set.
261 . KMF_PROXY_PORT -- proxy port. Makes sense only if KMF_PROXY_SET
262 is set and KMF_PROXY is non-null.
263
264 For example:
265 $ export KMF_PROXY_SET=1
266 $ export KMF_PROXY=webcache.sfbay
267 $ export KMF_PROXY_PORT=8080
268
269 These variables may also be set during the stf_execute step using the
270 '-c' switch. See the STF User's Guide for details.
271
272 8. CONTACT US
273
274 If you want to contact us, please e-mail the STC_CONTACT listed in the
275 STC.INFO. Your feedback is greatly appreciated. To file a bug or an
276 RFE against the suite, please use the stc/security/kmf subcategory.
277