import trousers 0.3.8 from sourceforge.

TrouSerS is the open-source TCG Software Stack
This commit is contained in:
christos 2012-01-28 01:35:04 +00:00
parent 3cbaf51ab7
commit 2d5f7628c5
464 changed files with 155886 additions and 0 deletions

View File

@ -0,0 +1,23 @@
All authors of this TSS have been funded by IBM.
The TSS code was originally written for WIN32 by Ryan Catherman and ported to
Linux initially by Seiji Munetoh and Taiga Nakamura as well as Ryan.
The code has since been modified by Seiji Munetoh and Kent Yoder.
The code is currently maintained by Kent Yoder <shpedoikal@gmail.com>.
The manpages were originally written by Megan Schneider and Kathy Robertson
and have been modified by Kent Yoder.
Other contributors to the TSS 1.2 functionality:
Tom Lendacky
Loulwa Salem
Ramon Brandao
Klaus Kiwi
Specifically the NVRAM implementation:
James Xu
Rossey Liu
Jacfee Liu

View File

@ -0,0 +1,893 @@
* TROUSERS_0_3_8
- Fix ssl_ui.c overflow
- Handling of TPM_CERTIFY_INFO2 structure special case
- Fix possible obfuscation of obj_migdata.c errors.
- Make 1.2 keys respect the TPM_PCRIGNOREDONREAD flag.
- PCRInfo member allocation in Trspi_Unload_CERTIFY_INFO.
- Add functions for deserializing NVRAM related data structures
- Add NVRAM specific error messages
- Fix spec file so one can build an rpm
- Initialize the tcsd_config_file with NULL.
- support for -c <configfile> command line option
- Establish a .gitignore file
- ENDIAN_H and htole definition fix
* TROUSERS_0_3_7
- __tspi_freeTable wrong call
- Owner Evict pubkey setup fix
- The "HAVE_ENDIAN_H" check is missing from configure.in, but it appears to be needed in a couple of the source files.
- tspi_context.c fix (memleak)
- Added the missing setup of a tcs handle for owner evict keys.
- No need to initialize the flock structure.
- flock to fcntl change
- Fixed cleanup code in svrside.c
- Avoid warning of missing return in tcsd_thread_run()
- printf() warning fix
- Moved hDAA debug message after initialization
- Additional length check
- Tspi_NV_DefineSpace secret check fix
* TROUNSERS_0_3_6
- Fixed a number of warnings during a build with --debug regarding THREAD ID
definition
- Removed htole() dependency, which was included only in glibc 2.9
* TROUSERS_0_3_5
- Allowed TCD Daemon to run with reduced privileges In Solaris.
- Fixing previous kfreebsd build patch conflict with the current tree.
- TCSD error handling improvements.
- mutex init inclusion.
- pthread_t portability fix
- Owner Evict keys load fix.
- Big- endian issues.
- Memory leak fix.
- Adding missing #include <limits.h>.
- kfreebsd build fixes.
- Fixed usage of syslog().
- 64bits clean
- Fixes the TCP UN and IN socket connection attempt handling
- Fixes logic on opening a hardware TPM.
- Added communication through TCP to software TPMs in TrouSerS.
- Fixed conflicting defines
- Adds missing free()
- Fixed fread() return value check.
- Made the previous fix cleaner and more robust.
- Added missing check in order to avoid freeing buffer that's out of Tspi_Data_Seal() scope.
- Fixed Tspi_TPM_GetRandom 4kb output limit.
* TROUSERS_0_3_4
- Fixed TrouSerS mishandling of TPM auth sessions
- Enabled hosttable.c "_init" and "_fini" functions to work on Solaris
- Included Solaris in BSD_CONST definition conditional
- Made the init script LSB compliant
- make distcheck improved
* TROUSERS_0_3_3_2
- Fixed logic when filling up RSA keys objects.
* TROUSERS_0_3_3_1
- TCSD now runs as tss and has a better signal handling
- Fixed many memory handling issues
* TROUSERS_0_3_3
- Tspi_ChangeAuth fixed for popup secret use case.
- Prefixed exported functions with common names.
- Fixed issues with accessing the utmp database.
- Migrated the bios parser file handler from open to fopen.
* TROUSERS_0_3_2
- Added IMA log parser in conformance with format introduced in linux kernel 2.6.30
- Fixed memory handling issues in src/tspi/tspi_quote2.c and tspi_tick.c
- Fixed memory handling issues in tcs/rpc/tcstp/rpc_tick.c
- Fixed logic when releasing auth handles, now the TPM won't become out of
resources due too many unreleased auth handles there.
- Fixed compilation problems when building trousers in Fedora with
-fstack-protector & gcc 4.4
- Fixed the legacy usage of a deprecated 1.1 TPM command, now auth sessions
can be closed fine.
- Fixed key memory cache when evicting keys, invalid key handles were evicted
when shouldn't.
- Fixed authsess_xsap_init call with wrong handle
- Fixed authsess_callback_hmac return code
- Fixed validateReturnAuth return value
- Added consistency to avoid multiple double free() and bound checks to avoid
SEGV
- Moved from flock to fcntl since the first isn't supported in multi-thread
applications
- Added necessary free() and consistency necessary in tspi/tsp_delegate.c to avoid SEGV
- Typecast added in trousers.c in the UNICODE conversion functions
- Fixed wrong return code in Tspi_NV_ReleaseSpace
- Fixed digest computation in Tspi_NV_ReleaseSpace
- Fixed tpm_rsp_parse, it previously checked for an additional TPM_AUTH blob,
resulting in a incorrect data blog unload.
- Added new OpenSSL UI for TSS_SECRET_MODE_POPUP auth mode.
- Added workaround to fix namespace conflict with SELINUX
- Set SO_REUSEADDR socket option.
- Added TSS_SS_RSASSAPKCS1v15_INFO signature scheme definitions and support
- TDDL can now be compiled apart from the rest of TrouSerS.
- Added #include <limits.h> to remove INT_MAX undeclared error
during build. Files updated: trspi/crypto/openssl/symmetric.c,
tspi/tspi_aik.c and tspi/tsp_ps.c
- Added bounds checking in the data parsing routines of the TCSD's
tcstp RPC code, preventing attacks from malicious clients.
- Removed commented out code in src/tcs/rpc/tcstp/rpc.c
- Commented out old OSAP code, its now unused
- Fixed bug in tcsi_bind.c, one too few params were passed to
the function parsing the TPM blob.
- Fixed lots of erroneous TSPERR and TCSERR calls
- Added support for logging all error return codes when debug
is on
- Check that parent auth is loaded in the load key path outside
the mem_cache_lock, if a thread sleeps holding it, we deadlock
- Added support for dynamically growing the table that holds
sleeping threads inside the auth manager
- In tcs_auth_mgr.c, fixed the release handle path, which didn't
check if the handle was swapped out before calling to the TPM.
- Updates throughout the code supporting the modular build.
* TROUSERS_0_3_1
- Added check of return code for ResetDALock call in tspi_admin
- Added missing ordinals in tcs_pbg.c as reported by Phil Carmon.
- Added support for DSAP sessions and delegating authorizations!
- Added support for DSAP sessions inside a transport session.
- Prevent Tspi_TPM_GetCapability from switching the endianess of
the data returned from a request for TSS_TPMCAP_NV_LIST when that
list happens to be sizeof(UINT32).
- Fixed trouble in owner_evict_init path for 1.1 TPMs
- Fixed multiple problems with changing auth on encrypted data
and keys.
- Fix for SF#1811120, Tspi_TPM_StirRandom01 test crashes TCSD.
- Fix for SF#1805829, ChangeAuth fails to return an error
- Fix for SF#1803767, TSS_TSPATTRIB_KEY_PCR_LONG key attribute
not implemented
- Fix for SF#1802804, Tspi_TPM_Delegate_UpdateVerificationCount
problem
- Fix for SF#1799935, Tspi_TPM_Delegate_ReadTables bug
- Fix for SF#1799912, policy lifetime counter doesn't reset with
SetSecret
- Fix for SF#1799901, policy lifetime timer doesn't reset with
SetSecret
- Fix for SF#1779282. Trspi_UnloadBlob_CERTIFY_INFO DNE.
- Fix for setting the right kind of PCR struct in the key object
* TROUSERS_REDHAT_SUBMIT
- Updated ps_inspect utility to more accurately guess if the file
you're inspecting is really a persistent storage file.
- Fixed endianess issue with certain TPM get caps
- Fixed bug in setting credential data in the TSP
- Moved secret hash mode code out from inside spec compliance
#defines since they're now part of the 1.2 spec.
- Better support for NULL parameters to blob manipulation
functions
- Fix for regression - blank the SRK pubkey copy stored in system
persistent storage
- Added RPC plumbing for DSAP sessions
- Added support for unmasking data on unseal :-)
- Implemented encdata PCR_INFO_LONG GetAttrib's
- Overhauled OSAP session handling.
* TROUSERS_0_3_0
- Added TSS_TCSCAP_PLATFORM_CLASS cap support
- Added the Quote2 Commands
- Added new TSS 1.2 return codes to Trspi_Error_String.
- Added Tspi_Context_GetRegisteredKeysByUUID2 functions
to the persistent storage system
- Added Tspi_TPM_OwnerGetSRKPubKey and TCS OwnerReadInternalPub
code.
- Added support for operator auth and Tspi_TPM_SetOperatorAuth.
- Added support for Sealx.
- Added ordinal auditing support.
- Added initial transport session support.
- Rewrote TCSD key loading functions.
- Added support for UINT64 loading/unloading everywhere.
- Created an initial TCS parameter block generator in tcs_pbg.c.
- Added support to get_local_random to either allocate a new
buffer for the random number or write it to a given buffer.
- Removed TCS GetCredentials APIs -- the TSSWG verified that these
had accidentally been left in the spec.
- Added TCS GetCredential API.
- Added NVRAM APIs, donated by James Xu, and others from Intel.
- Added TCS GetCredentials functions
- Patched the TCS key loading infrastructure to return
TCS_E_INVALID_KEY when a handle is used by a context that doesn't
have a reference to the key in its keys_loaded list.
- Added ASN.1 blob encoding and decoding APIs.
- Added tick stamping APIs
- Added monotonic counter APIs
- Added the Tspi_PcrComposite APIs: GetPcrLocality,
SetPcrLocality, SelectPcrIndexEx and GetCompositeHash.
- Added new TSS 1.2 return codes for bad EK checksum and
invalid resource passed to Tspi_Context_FreeMemory.
- Added Christian Kummer's implementation of PCR reset
- In PcrExtend, set up the event struct fully before sending
to the TCS.
- Fixed bug in ActivateIdentity's use of rgbSymCAAttestation.
- updated policy handling to match the latest spec.
- Fixed bug when 2 TCSD's return the same context number.
- Added a check for the size of Tcsi_StirRandom's entropy data.
- Added support for TSS 1.2 style keys and PCR info long and
short structures.
- Added support for TPM_Save/LoadAuthContext.
- Grouped all threading functions in one header file, threads.h.
- Fix added in TCSD's event parsing code for a segfault when only
the number of events is requested.
- Several bugs fixed in the Tspi_Context_GetRegisteredKeysByUUID
code path in the TSP lib.
- Added a lock around all TCSP functions; removed auth_mgr_lock
since the TCSP lock now suffices. This fixed some TCSD multi-
threaded errors.
- hosttable.c: Fixed bug in host table entry removal, thanks
to Thomas Winkler for the testcase that helped in finding this.
- In the TCS GetPcrEventsByPcr, fixed a bug in calculating
the number of events to return. Thanks to Seiji Munetoh.
- Added functions to do incremental hashing, removing most
large stack allocations in trousers.
- Updated blob utility functions to use UINT64's instead of
UINT16, which had caused some arbitrary limits in parts of
trousers.
- Merged in TSS 1.2 header files.
- Merged in build changes for embedded.
* TROUSERS_0_2 branch created
- In obj_policy.c and obj_tpm.c, if NULL is passed in when trying
to set a 1.2 style callback, clear the callback address.
- Fix in Tspi_TPM_ActivateIdentity: Only validate over the out
parameters from the TPM, not the TCS (size of data).
- obj_encdata.c: fixed reference of pcrSelect, which caused
bad data to be returned as the PCR selection.
- added TSS_TSPATTRIB_ENCDATAPCR_DIGEST_ATRELEASE, which was
type-o'd in the 1.1 header files.
- Fix for SF1570380: Algorithm ID not compliant with TSS spec.
- Corrected off by 1 errors in PCR index bounds checking.
- Changed logging in the TCSD so that FILE:LINE isn't printed
unless debugging is on.
- Changed build/code so that the system PS dir is mode 0700, not
1777. It used to be 1777 when user PS was not in ~/.trousers.
- Fix for SF1565726: Segfault when connecting from remote host.
- Fix for SF1565208: User PS load key by UUID failed.
* TROUSERS_0_2_8
- Fixed bug in mc_add_entry, where the PCRInfo data was not being
copied into the mem cache with the other fields of the key.
- Fixed 2 bugs in spi_getset.c where setting the secret hash mode
was passing subFlag to the internal set function instead of
ulAttrib.
- Added patch to retry the libtspi's recv() call to the TCSD
if the call was interrupted before completion.
- Made the popup string appear as a label on the popup, not the
title. Also, got rid of annoying mouse-over texts.
- Added a flag to pass to the get_secret function internally to
indicate whether a popup should contain the confirm box.
- Added support for callbacks in the identity creation code.
- Updated the identity creation code in the TSP/TCS to support
AES, DES, 3DES during identity creation.
- Added symmetric encryption interfaces for openssl, Trspi.
- In Tspi_Hash_Sign, fixed memory leak.
- Added SetAttribData functions for RSA modulus/exponent per
the upcoming additions to the TSS 1.2 errata 1 spec.
- Fixed bug in TCS key cache where if 2 keys had the same public
modulus, they could confuse the key cache manager.
- Bind/Seal functions now return more descriptive errors codes
and won't do the encryption if the data to use is larger than
the RSA pubkey.
- Made updates to the code/headers for the TSS_VALIDATION struct
change to be issued as TSS 1.1 header file errata 1.
- Bug fix: In LoadManuMaintPub's wrapping function in the TSP,
we incorrectly passed a reference to the pubkey in loading the
blob.
- Fixed bugs in the maintenance commands, owner auth'd commands
were using no auth tags in their commands sent to the TPM.
- Fixed SF1546344: Track the release of auth handles by TCS
context and take the fContinueAuthSession variable into account
when calling the TPM to release a handle.
- Fixed SF1545614: deadlock due to auth_mgr_osap taking the
auth_mgr_lock before calling ensureKeyIsLoaded, which took the
mem_cache_lock.
- Added checks to ensure corrupt packets don't crash the tcsd.
- Added configure option --with-gui=gtk/none to enable building
with no popup support for embedded apps. The default secret
mode becomes TSS_SECRET_MODE_NONE for all policies and the
default context mode becomes TSS_TSPATTRIB_CONTEXT_SILENT to
supress all popups.
- Changed the Tspi_GetAttribData function to return a TCPA_PUBKEY
blob as is specified in the portable data section.
- Added a debugging #define in req_mgr.c to print all data passed
to/from the TPM.
- Updated Tspi_Context_LoadKeyByUUID to check in-memory keys by
UUID when the TCS returns a filled-out loadkey info struct.
- Removed the free of all context related memory when the context
closes. Allows an app more flexibility in choosing what to free.
- Removed check for secret mode None in establishing an OSAP
session. Now, a secret of all 0's is used if no secret exists.
- Added checks for 2 return codes in secret_TakeOwnership.
- Fixed TSS_VERSION problem. There are no specific getcaps for
software version vs. TSS spec version. Instead, the TSP's
version structure contains spec version and software major/minor.
- Removed obj_regdkey list references.
* TROUSERS_0_2_7
- Added 3 new TCSD config options to allow admins to set paths
to the 3 types of credentials returned on Make Identity calls.
- Added an implementation for returning the MANUFACTURER TCS
caps.
- Added translation of TSS caps that are destined for the TPM.
- Updated DirWrite to work correctly (thanks Kylie).
- Updated the Tspi_TPM_DirWrite manpage with more info, removed
a confusing statement.
- Changed the number of loops in TCSP_GetRandom_Internal to 50,
which should allow TPMs that return few bytes per request to
fullfill up to 4K bytes.
- Removed the TCS's getSomeMemory() function, which was really
dumb.
- Changed the way user PS operates. User PS is now really
persistent, its kept in ~/.trousers/users.data, which is
created if it doesn't exist. Also, the environment variable
TSS_USER_PS_FILE can be set to a path that will override the
default location for as long as the TSP context is open.
- Lots of memory leaks found in error paths by Coverity, mostly
in tcsd_wrap.c.
- Fix for SF #1501811, setting some SetAttribUint32 flags not
supported.
- Lots of updates to the fedora specific RPM specfile.
- Fix for SF #1490845, 'make install' overwrites old tcsd.conf
- Added code to return TSS_E_POLICY_NO_SECRET when setting up
an OIAP or OSAP session.
- Added fix for SF #1490745, trousers demands too much from
/dev/random. Default random device is now /dev/urandom.
- Changed severity of the ioctl fallback print stmts to
warning and info.
- Added implementation of the maintenance functions.
- Added fix for SF #1487664, Offset in PS cache is not
updated correctly.
- Removed some Atmel specific code and commented out code.
- Added some missing auth_mgr_check calls in tcspbg.c.
- Fixed some unchecked mallocs in the TSP.
- Added build variables to automatically update the TSP
library version and TCSD version getcap variables.
- Added call to return the modulus of an RSA key on a
GetAttribData call.
- Added implementation of the migration functions.
- Fix for SF 1477178, random numbers get hosed by the tcsd.
* TROUSERS_0_2_6
- Removed unnecessary call to obj_encdata_get_data in
Tspi_Data_Seal.
- Added support for using the trousers.h APIs in C++.
- Fixed Tspi_PcrComposite_GetPcrValue's man page, which had
left out *'s in two parameters.
- Fix for SF 1414817, Quote's PCR object doesn't get set on
return.
- Lots of function renaming to make code reading clearer.
- Return TSS_E_INVALID_OBJ_ACCESS when trying to retrieve data
from an encrypted data object that hasn't been set.
- Added contact info to the README.
- Fix for ordering of params in call to set callback by
Tspi_SetAttribUint32. Thanks to Thomas Winkler for the fix.
- Fix for SF 1410948, get random numbers from /dev/urandom
unless Tspi_TPM_GetRandom is called explicitly.
- Fix for SF 1342026, print TPM error codes during bring-up.
- Added support for a TCS_LOADKEY_INFO structure returned from
a TCSP_LoadKeyByUUID call.
- Fixed 2 free_tspi's that should have been plain free's
* TROUSERS_0_2_5
- Changed all prints of size_t to %z (matters on 64bit platforms).
- Backport of the context and policy object's
TSS_TSPATTRIB_SECRET_HASH_MODE attribute from the TSS 1.2 spec.
This will allow 1.1 apps to decide whether they want to
include the 2 bytes of NULL in the hashes of their secrets.
This will in turn allow various TSS's to interoperate better.
- SF#1397265 'getpubek' to 'readpubek' in tcsd.conf.
- Added an implementation of TSS 1.2 style callbacks.
- Added Emily's patch to explain the TSS_DEBUG_OFF flag, added
blurb to README.
- Fixed bug that only manifested on PPC64: if errno is not set
to 0 explicitly before making a call to iconv, iconv will not
set it on failure.
* TROUSERS_0_2_4
- Updated README with how to use new system.data files.
- Added sample system.data files for users who've taken
ownership of their TPMs under other OS's.
- Updated unicode routines to NULL terminate their strings
with the same number of bytes as is the width of the
encoding.
- Fixed bug in TCS_EnumRegisteredKeys_TP, returned data should
be alloc'd on the TSP heap.
- Added a logging statement when tcsd_startup fails due to an
error returned by the TPM itself.
- Fixed validation data in Tspi_TPM_Quote and
Tspi_TPM_GetPubEndorsementKey.
- Implemented Tspi_TPM_CollateIdentityRequest and
Tspi_TPM_ActivateIdentity.
- Bug fix in TCSP_Sign_TP, signature should be alloc'd using
the TSP heap.
- Fix for SF#1351593, authdata was always 0 for the SRK. This
was due to the defaults set in Tspi_Context_CreateObject for
the SRK key flag. The default SRK key is now set to require
auth. If you want an authless SRK, you need to either set
the authdatausage attribute directly or pass in your own
SRK initFlags to the create object call.
- Return bad parameter when no the pcr object is not
initialized instead of internal error.
- Several fixes added for list locking in the obj_*.c files.
- Added initial support for Tspi_TPM_CollateIdentityRequest
and its supporting functions (symmetric encryption).
- Fix for SF#1338785: Support TSS_TSPATTRIB_HASH_IDENTIFIER.
- Changed default kernel and firmware controlled PCRs to
none, which should have happened a long time ago. :-/
- Fix for SF#1324108: Tspi_TPM_GetEvents should return a
number of events
- Fix for RFE#1301441: Fallback support for the device
node. ioctl is tried first, if that fails, r/w is tried,
if that fails, error is returned.
- Fixes for SF#1332479: HMAC and XOR callbacks were being
passed wrong params.
- Fix for SF#1334235, uuid data wasn't being set correctly
when keys were registered or loaded by uuid.
- Fix for SF#1332316, Tspi_GetAttribData doesn't always
return data alloc'd by TSP. Unicode data returned from the
function was being allocated off the TSP heap.
- Changed default return value for Tspi_GetAttribUint32 to
success.
- Corrected Tspi_TPM_PcrExtend manpage to state that the
application should fill out the TSS_PCR_EVENT structure.
-Fixes for SF BUG#1312194, and SF BUG#1312196. Get
Attribs for key usage and size were not being returned
correctly. Imported values for size from the TSS 1.2
header files and translated TPM <-> TSP values for
key usage in the get attrib calls.
- Accepted Halcrow's patch to add a TSP key object
removal function, invoked at object close time.
This was SF BUG#1276133.
- increased the size of the return buffer from TCS to
TSP to 8K, so that larger requests won't fail.
- added a loop to TCSP_GetRandom_Internal to try several
(currently 5) times to get the number of requested bytes
from the TPM. Since the TSP has no way to tell an
application that a single request failed, this will help
improve the odds of a large request succeeding.
* TROUSERS_0_2_3
- SF#1291256 bugs fixed. A UINT16 was being passed instead
of a UINT32 to TCS_LoadKeyByBlob_Internal.
- Removed test in spi_context.c's call to TCS_LoadKeyByUUID,
which would always fail, since there was no TCS layer bit
set. This kept us in a success path.
- Added debug logging functions that print the function
name at the beginning of the statement.
- Added GetPubKey as an option for TCSD's remote ops.
- SF#1249767 bug fixed. UTF16 strings are now hashed when
passwords are passed in through the popups.
- SF#1286333 bug fixed. New unicode functions added that
convert to UTF-16 and from the nl_langinfo(CODESET)
encoding.
- SF#1285428 bug fixed. obj_context_get_machine_name copied
too many bytes out. Code added to Tspi_GetAttribData to
convert to UTF16 before returning.
* TROUSERS_0_2_2
- deleted section on ssh-askpass in README
- Modified popup code to hash UTF16 instead of UTF8.
- Restructured TCS calls to the TPM so that all auth sessions
are released correctly.
- Removed TSP contexts from all Trspi functions and modified
all trousers code to free its own memory instead.
- Fixed the TSP seal command to allow Sealing with a no-auth
key by using null auth data. Also changes the TCS seal
to return bad parameter if it gets null auth data.
- Removed lots of unused code and made formatting changes.
- Don't require Tspi_Key_WrapKey to be connected to succeed
and return a default value (or from the environment) if
we're doing PCR operations on an unconnected context.
- Fixed bug where a tcsd created system.data file was not
getting the right version info put into it.
- SF BUG#1269290 Fixed: Protect the SRK pub key. Upon taking
ownership, the unaltered SRK blob is passed back to the TSP
to create a valid key object with the SRK pub key intact.
The copies of the SRK pub key data that do into the TCSd's
mem cache and PS are zeroed out. From then on, the only way
to get the SRK pub key is through Tspi_Key_GetPubKey.
- tcspbg.c: deleted unused code and always release auth session
on an Unbind call.
- Bugfix for SF#1274308, Tspi_Key_CreateKey doesn't add PCRs
correctly. Ordering of calls in obj_rsakey_set_pcr_data
and calculation of PCRInfo size were incorrect.
- Close auth sessions in TCS_GetCapabilityOwner
- Removed volatile flag from the SRK key handle at key object
create time. This was keeping National TPM's from having the
ability to be owned!
- Moved calcCompositeHash to obj_pcrs.c and renamed it.
- Check returns everywhere for addKeyHandle calls.
- Call pthread_mutex_init on the host table's mutex.
- Modified TSSWG headers so that code w/o BSD types compiles
(such as the PKCS#11 TPM STDLL).
- Removed ssh_askpass, since UNICODE must be hashed from the GUI
input source.
- Updated all manpages to include the TSSWG header file names
instead of trousers specific files.
- Don't log debug data when TSS_DEBUG_OFF env var is available.
- Converted UNICODE to unsigned short and modified code accordingly.
- Only allow INADDR_LOCALHOST connections when no remote_ops are
defined in the tcsd.conf file.
- Bugfix in obj_pcrs.c, setting pcr indices and values was buggy.
- Moved macros from trousers_types.h (internal) to trousers.h
(external), since new header files make them virtually a
requirement
- Bugfix for SF#1249780, PCR selection structure was incomplete.
- Bugfix for SF#1249769, addKeyHandle now returns a TSS_RESULT.
* TROUSERS_0_2_1
- return invalid handle int Tspi_ChangeAuth when hParentObject
is not of the right type.
- Fixed bug in TCS ps, write_key_init returned the wrong offset.
- Fixed mem leak in spi_getset.c:791, found by Coverity.
- Fixed mem leak in calltcsapi.c:70, found by Coverity.
- Fixed mem leak in tcskcm.c:531, found by Coverity.
- Fixed type-o mem leak in tspps.c:319/tcsps.c:349, found by Coverity.
- Fixed mem leak bug in memmgr.c:173, found by Coverity.
- Fixed bounds error bugs in tcstp.c:38/98, found by Coverity.
- Fixed bounds error bug in tcsd_wrap.c:154, found by Coverity.
- Fixed unchecked return bug in spi_utils.c:430, found by Coverity.
- Fixed unchecked return bug in calltcsapi.c:1159, found by Coverity.
- Fixed negative return value bug tcs/ps/ps_utils.c:365, found by Coverity.
- Fixed negative array index bug readpass.c:65, found by Coverity.
- Fixed null deref bugs spi_tpm.c:1292/1309/1302, and uninitialized
variable 1272, found by Coverity.
- Fixed null deref bugs spi_context.c:358/378, found by Coverity.
- Fixed null deref bug tcspbg.c:1413, found by Coverity.
- Fixed null deref bug tcspbg.c:745, found by Coverity.
- Fixed null deref bug imaem.c:356, found by Coverity.
- changed config file defaults for kernel/firmware pcrs.
- added better logging for when user/group "tss" doesn't exist
- in sendTCSDPacket: set transmitBuffer to 0 to prevent sending
bogus data.
- added some sanity checking in getTCSDPacket to prevent segfaults.
- added TCSERR where needed in tcs/ps files.
- BUG 1233031 fixed, TSP now stores PACKAGE_STRING as the vendor
data when registering a key.
- Added better debugging of auth mapping table, also closed two
auth handles that were getting left opened in CreateWrapKey and
Seal/Unseal.
- fixed ps_inspect's printing function.
- added SELinux files and README.selinux.
- updated ps_inspect tool to recognize non-PS files,
print out version 1 PS files and added a license
statement. Also added ps_convert tool to convert
version 0 PS files to version 1.
- updated ps_inspect tool to print out blobs and keys.
- change assert to DBG_ASSERT in tcs/ps files, also
assert that data sizes are > 0 when read off disk.
- Lots of malloc error logging changes where %d should
have been %u in the print statment.
- auth_mgr.c: allow a TSP to open a max of max_auths/2
sessions before its denied any more, for TPMs that
can handle a lot of auth sessions.
- Big-endian fixes for the persistent store functions.
Trousers now runs fine on ppc64, for example.
- BUG 1226617: Audit of code for auth handle termination.
- Use @PACKAGE_BUGREPORT@ instead of a static email addr in
manpages.
- Added man page for tcsd.conf in section 5.
- Bugfix in remove_table_entry. Host table head was left
pointing at free'd memory.
- corrected comment in spi_context.c.
- added 64bit stuff to configure.in
- fixed bug in Tspi_ChangeAuth where parent object was
assumed to be an rsakey.
- fixed debug logging of data.
- modified calcCompositeHash for accepting incomplete pcr
select structures & to fill out the structure correctly.
* TROUSERS_0_2_0
- removed unused code and added debugging in clearUnusedKeys().
- Updated README with info on the 2.6.12 kernel device driver.
- fixed bug in calculating pcr select size
- fixed bug in init'ing PCRS, spi_utils.c:431
- Changed TCPA sig schemes to TSS sig schemes in
Hash_VerifySignature.
- Implemented Tspi_Context_GetKeyByPublicInfo on the TCS side.
- Fixed PS bug in storing the pub key data.
- Implemented Tspi_Key_UnloadKey
- Implemented the guts of Tspi_Key_CertifyKey, which now works
in at least the case where both keys passed in are authless.
- in obj_rsakey_set_es/ss, added mapping from TCPA numbers
to TSS numbers and vice versa.
- added #includes in readpass.c to get rid of compile errors.
(thanks Emily).
- Fixed popup secret handling. Bug #1194607 closed.
- Fixed up the LogBlobData functions, no more strcat. Bug #1221974
closed.
- changed sprintf's to snprintf. Bug #1221932 closed.
- Changed the TCPA_RSA_KEY_PARMS management at key creation time.
- Re-implemented TSP object management.
- Integrated TSSWG header files.
- Added valid_keys variable for the debugging build of
tcs/ps/ps_utils.c.
- Changed >= to > in openssl/crypto.c to correct off by one in
checking the size of the input data.
- added cvs commit logging to CVSROOT/loginfo file.
* TROUSERS_0_1_11
- Changed TCSD logging to only log on remote connection attempts,
local connections will be left silent.
- mended compiled time warnings
- updated src/tspi/Makefile.am to respect libtool.
- added x86_64 case to configure.in
- added args to print stmt tcsd_wrap.c:3640 (thanks Kylie).
- commited fix for detecting past runlevel states (thanks Kylie).
- committed fix for RNG problem: a TPM's RNG is disabled when
the TPM is in the disabled state, yet needs a random number
to open an OSAP session to call the owner auth'd TPM enable
command.
- added code for CreatePubEK plumbing (thanks Kylie).
- fixed a couple signed/unsigned comparison warnings
- fixed endianess stuff in TPM GetCap spi_tpm.c.
- added Trspi_Error functions to manipulate TSS_RESULTs.
- Fixed order of receiving for the TCS_OwnerReadPubek call
(thanks Kylie).
- Added defns for volatile and non-volatile flags (thanks Kylie).
- Added Trspi_Error, which converts a TSS_RESULT to a string.
(thanks Kylie).
- In tcsd_wrap.c, added function bodies for tcs_wrap_OwnerClear,
tcs_wrap_DisablePubekRead, tcs_wrap_OwnerReadPubek,
tcs_wrap_DisableForceClear and tcs_wrap_DisableOwnerClear.
(thanks Kylie).
- Added an unload of the auth returned from the TPM in
TCSP_OwnerReadPubek_Internal. (thanks Kylie).
- Corrected the TAG for the TPM command in
TCSP_OwnerReadPubek_Internal. (thanks Kylie).
* TROUSERS_0_1_10
- Updated implementation of Tspi_Key_WrapKey.
- Added missing goto in ReadPubEK in tcstp.c. (thanks Kylie).
- Added function guts for various functions in tcstp.c. (thanks
Kylie).
- In Tspi_TPM_SetStatus, do the right in the physical presence
path based on boolean. (thanks Kylie).
- Actually pass in the bool flag on TCSP_PhysicalPresence_Internal
(thanks Kylie).
- corrected force clear logic in spi_tpm.c:818 (thanks Kylie).
- fixed error return code check to socket() syscall clntside.c:52.
- added comment about TDDL reries and added log statement when a
physical presence command is denied because of runlevel.
- Fixed Tspi_Hash_VerifySignature to check signatures based on the
signature scheme of the key in use. Also, crypto.c was changed
to do a verify based on TSS_HASH_OTHER.
- Added 2 new highlevel Unbind testcases to test PKCS1.5 vs OAEP.
- In Tspi_Context_LoadKeyByUUID, the uninitialized keyBlob variable
was causing an invalid free on exit. Corrected that.
- changed return value from internal error to invalid handle when a
bad object handle is passed to Tspi_Hash_Sign and the Tspi_Data
functions.
- added Tspi_TPM_CertifySelfTest functionality
- corrected iptables string in the tcsd manpage.
- Corrected return code in Tspi_Key_UnloadKey02.c testcase.
- enabled Tspi_TPM_GetTestResult functionality
- added selftest as an option to the list of remote ops for the access
control
- added compatibility with openssh-askpass for the popup dialog box.
Now either gtk2-devel OR openssh-askpass must be installed to build
trousers. Using openssh-askpass reduces the size of libtspi.so by
about 40K and reduces the number of dependencies from 26 to 6!
- Bugfixes
- The entityType field was being passed between the TCSD and
TSP as a UINT32 instead of UINT16. This was keeping Tspi_ChangeAuth
from working as advertised.
- Secrets were being hashed incorrectly when secret mode was PLAIN
and the secret data length was 0. Now, when secret mode is plain, the
passed in data is always hashed, even if its 0 length.
- Popups are hopefully being handled more correctly now. Previously
the dialog popped up at the time SetSecret was called, but now its
just when the secret is actually needed.
- sf.net Bug #118026: memory allocations and free's fixed in almost
all paths from app to tcstp.c wrt correctly returning calloc_tspi'd
memory vs. malloc'd memory. Only problem remaining is the PCR event
functions, which have dangling malloc'd references, which is an
architectural problem which should be solved in the 1.2 rewrite.
* TROUSERS_0_1_9
- added tcsd manpage
- added access control functionality so that sets of ordinals
cannot be executed by non-local hosts. This is now a
configurable option in tcsd.conf as "remote_ops".
- Set Physical Presence now works from the TSP when the TCSD
detects that it is running in single user mode. When not
running in single user mode, the TCS_PhysicalPresence
command returns TSS_E_NOTIMPL.
- Changed an fprintf to LogError in gtk/support.c
- TCP/IP server-side fixes in svrside.c
- various compile warnings fixed
- moved commonly used utility functions to trspi/trousers.c and
exported these functions in the header file tss/trousers.h.
- added new testcases for ChangeAuth of the TPM owner and SRK in
tcg/highlevel/tspi.
- added test tcg/highlevel/tpm/Tspi_TPM_PcrRead04.c
- updated Tspi_TPM_GetCapability manpage.
- added code to detect a 1.2 TPM and get auth sessions the 1.2 way.
- added manpage for Tspi_TPM_GetPubEndorsementKey
- Bugfixes
- in crypto.c, encrypted data area should be RSA_size(rsa) bytes
large, not always 256. This was keeping non-2048 bit keys from
working with the TPM keyring app.
- Fixed detection of an already closed Tddl.
- Allow validating the entire TCPA_PUBKEY structure in
Tspi_TPM_GetPubEndorsementKey, as National chips do this.
- Added support for TSS_TPMCAP_ORD and TSS_TPMCAP_FLAG in
Tspi_TPM_GetCapability, which required a call to
TCSP_GetCapabilityOwner to fetch the TPM's internal flags. Added
tcg/highlevel/tpm/Tspi_TPM_GetCapability0{4,5}.c to test.
- When loading the SRK from TCS PS, the TCS key handle should now
be 0x40000000 (TSS_SRK_KEY_HANDLE). There were checks for this in
the ChangeAuth code paths, which caused failing of various sorts.
- Bug fixed in roll over of TCS key handle generation. Previously we
would have smashed the SRK's fixed value and we would have thought
there were 2 SRK's loaded.
- sf.net bug #1154611, old SRK was not being removed from mem cache,
though disk cache was being deleted. This means that after re-taking
ownership the mem cache was corrupted until a restart of the TCSD.
- Feature Requests
- sf.net RFE #1122608 completed. Several different device locations
are now supported by default. If /dev/tpm is created its assumed that
the IBM Research device driver is being used and therefore ioctl's are
sent to the driver, all others get read/write's. Updated README.
* TROUSERS_0_1_8
- added a manpage for Tspi_TPM_PcrExtend
- added SHA1_HASH_SIZE #define tied to openssl/sha.h
- Corrected typo in tcpa_types.h of pValdationData -> pValidationData
- updated README with info on device file stuff
- added a usage function and long options to tcsd
- added an error message when incorrect params are passed to tcsd on
the command line.
- added -lcrypto and -lpthread to the build of libtspi.so, so that app
writers will avoid having to include those when they don't have to.
- Connected up Tspi_TPM_SetStatus and Tspi_TPM_SelfTestFull to
TCSP_SetTempDeactivated, TCSP_SelfTestFull, TCSP_SetOwnerInstall,
TCSP_OwnerSetDisable and TCSP_PhysicalDisable.
- Bugfixes
- tcsem.c:507, error in calculating number of PCR events to copy out.
- sf.net bug #1151183 fixed. Tspi_TPM_GetPubEndorsementKey now takes
the correct number of params, and all testcases/TSS calls are changed.
- sf.net bug #1113313 fixed. Tspi_TPM_TakeOwnership now allows a NULL
pub endorsement key handle and a testcase,
tcg/highlevel/tpm/Tspi_TPM_TakeOwnership03.c, exists to test this.
- In Tspi_SetAttribData, set the TCPA_KEY's privkey, not the wrapper
object on a TSS_TSPATTRIB_KEYBLOB_PRIVATE_KEY.
* TROUSERS_0_1_7
- Fixed the logging up so that if tcsd -f is specified, all logs go the
foreground, else all logs go to syslog.
- Moved the TPM_IOCTL #define into the tddl.h file. Now, if you're
using the IBM research device driver, compiling with #define TPM_IOCTL
will use ioctl's to open /dev/tpm and #undef TPM_IOCTL will use
read/write calls to /dev/tpm0.
- Revert accidental change in tddl.c
- Lots of 0's replaced with non-magic #define's in the TSP code
- In spi_getset.c: removed unimportant debugging stmts; make
Tspi_{Get|Set}AttribData set the correct public and private key data
when asked to.
- Lots of manpage verbage changes.
- added new manpages for: Tspi_TPM_TakeOwnership, Tspi_Key_LoadKey,
Tspi_Context_Create and Tspi_TPM_ClearOwner.
- Bugfixes
- cxt.c: when destroying a context object, release the tcs_ctx_lock before
calling ctx_ref_count_keys(). This prevents a deadlock.
- added a mutex unlock call for an error path that would have caused a
deadlock
* TROUSERS_0_1_6
- Logging functionality changes only, for bug #1106301
- TCSD:
- Logs now go to stdout/stderr until a successful startup
- After a successful startup, cmdline args are parsed
- if -f is specified, logging continues to stdout/stderr and daemon runs
in the foreground, killable by ctrl-c.
- If -f is not specified, logs go to syslog and the tcsd forks into the
background
- TSP library
- If compiled w/o debugging, there is no logging of any kind
- If compiled w/ debugging, all logs go to stdout/stderr, unless the
environment variable TSS_DEBUG_OFF is set, then, there is no logging of
any kind
- There is no longer a --enable-stderrlog option to the configure script
* TROUSERS_0_1_5
- Complete memory management overhaul. calloc_tspi is now used to clean up
memory allocated by Tspi functions. TCS blob functions have been changed
to not require a context, since there's no need w/o calloc_tspi. Its
now necessary to call free explicitly everywhere in the TCS. In the TSP,
calloc_tspi is now always called with the TSP context of the session, which
would will ensure all memory allocated by the session is accounted for.
- Unused #defines and variables removed from spi_utils.h
- Commented out code removed throughout the source.
- Removed log.o on a 'make clean'.
- commented out unnecessary logging, added more descriptive logging
- renamed variables named 'hContext' to specifiy whether they represent TSP
of TCS context handles.
- got rid of a few magic numbers
- Bugfixes
- in tcs/cache.c, getNextTimeStamp() was unlocking the mutex twice.
- removed destroy_key_refs() in TSP, which caused double free errors
- added call to event_log_final() in tcsd_shutdown() to clean up the event log
- added an intermediate copy stage of data in getTCSDPacket() to avoid
memcpy() calls with overlapping source and dest fields.
* TROUSERS_0_1_4
- added ChangeLog :-)
- TSP object management overhaul. All API's should be correct for contexts
whether they're connected to a TCS or not.
- testsuite changes based on object mgmt overhaul
- various internal fixes and simplifications of the code due to object mgmt
overhaul
* TROUSERS_0_1_3
- added helpful message when package gtk2-devel is not found in configure.in
- chown changes in dist/Makefile for new syntax
- added detailed flags to various manpages
- TSP memory management overhaul
- added more complete destroy_key_refs() function
- Bugfixes
- quashed memory leaks in TSP found by valgrind
- return TRUE/FALSE from getAttribData
- added TSS_TSPATTRIB_KEYINFO_SIZE to Tspi_GetAttribData
- call free() not Tspi_Context_FreeMemory() in spi_utils.c
* TROUSERS_0_1_2
- added bug report mailing list to configure.in
- added --enable-stderrlog feature to configure.in
- Marked Tspi_TPM_GetCapabilitySigned as not implemented (per TSS v1.1b spec)
- Bugfixes
- Removed common.h from Tspi_Context_RegisterKey manpage
- added endianess macros to spi_utils.h
- made all endianess fixes to the TSP and testsuite
- logging improvements tcspbg.c
- tcs_utils.c compile time warning quashed
* TROUSERS_0_1_1
- Updated design doc
- Updated README
- More sensible function naming (no addNewObject, just addObject)
- Bugfixes
- return data correctly in Tspi_GetAttribData
- malloc space for returned UUID correctly in tspps.c
- log errors in tddl.c
- follow a failure path in auth_mgr.c
- don't always return success in req_mgr.c
* TROUSERS_0_1_0
- Initial code drop

View File

@ -0,0 +1,87 @@
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
"Contributor" means any person or entity that distributes the Program.
"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
"Program" means the Contributions distributed in accordance with this Agreement.
"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
3. REQUIREMENTS
A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
a) it complies with the terms and conditions of this Agreement; and
b) its license agreement:
i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
When the Program is made available in source code form:
a) it must be made available under this Agreement; and
b) a copy of this Agreement must be included with each copy of the Program.
Contributors may not remove or alter any copyright notices contained within the Program.
Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.

View File

@ -0,0 +1,6 @@
SUBDIRS = src man dist tools
EXTRA_DIST = AUTHORS LICENSE NEWS NICETOHAVES README \
README.selinux TODO ChangeLog \
doc/LTC-TSS_LLD_08_r2.pdf \
doc/LTC-TSS_LLD_08_r2.sxw \
doc/TSS_programming_SNAFUs.txt

View File

@ -0,0 +1,718 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/configure \
$(top_srcdir)/dist/fedora/trousers.spec.in AUTHORS ChangeLog \
NEWS TODO config.guess config.sub depcomp install-sh ltmain.sh \
missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = dist/fedora/trousers.spec
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CRYPTOLIB = @CRYPTOLIB@
CRYPTO_PACKAGE = @CRYPTO_PACKAGE@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENSSL_LIB_DIR = @OPENSSL_LIB_DIR@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
RPC = @RPC@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
TCSD_DEFAULT_PORT = @TCSD_DEFAULT_PORT@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = src man dist tools
EXTRA_DIST = AUTHORS LICENSE NEWS NICETOHAVES README \
README.selinux TODO ChangeLog \
doc/LTC-TSS_LLD_08_r2.pdf \
doc/LTC-TSS_LLD_08_r2.sxw \
doc/TSS_programming_SNAFUs.txt
all: all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
dist/fedora/trousers.spec: $(top_builddir)/config.status $(top_srcdir)/dist/fedora/trousers.spec.in
cd $(top_builddir) && $(SHELL) ./config.status $@
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool config.lt
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool \
distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
distcheck distclean distclean-generic distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-recursive uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

View File

@ -0,0 +1,8 @@
These items are of lower priority than the TODO list. If any of these become
actual TODO's, they will move to that list.
1. Test Suite Design Document
2. State machine diagram of the TSS internal workings

229
crypto/external/cpl/trousers/dist/README vendored Normal file
View File

@ -0,0 +1,229 @@
trousers README
Trousers is an open-source TCG Software Stack (TSS), released under
the Common Public License. Trousers aims to be compliant with the
1.1b and 1.2 TSS specifications available from the Trusted Computing
Group website:
http://www.trustedcomputinggroup.org
CONTACT
For information on the TrouSerS project, please send mail to the
following lists:
Use of the TSS API and TrouSerS:
trousers-users@lists.sf.net
Discussion of the internals of the TrouSerS implementation:
trousers-tech@lists.sf.net
Possibly sensitive security related bugs:
Debora Velarde <dvelarde@us.ibm.com>
Run-of-the-mill bug reports should use the TrouSerS bug tracker:
http://sourceforge.net/tracker/?group_id=126012&atid=704358
BUILD REQUIREMENTS
Packages needed to build:
automake > 1.4
autoconf > 1.4
pkgconfig
libtool
gtk2-devel
openssl-devel >= 0.9.7
pthreads library (glibc-devel)
BUILDING the TSS 32-bit
Build and install the latest TPM device driver from
sf.net/projects/tpmdd either compiled in or loaded as a
module. UPDATE: This driver is now included in the vanilla 2.6.12
kernel! If you are doing this, trousers should just work after a
vanilla build. Follow the build instructions below and read
RUNNING the TSS, below.
To build trousers after you have the device driver installed:
$ sh bootstrap.sh
$ ./configure [--enable-debug] [--enable-gprof] [--enable-gcov]
$ make
# make install
Here are the default locations of files that trousers installs:
/usr/local/sbin/tcsd
/usr/local/etc/tcsd.conf
/usr/local/lib/libtspi.so.0.0.X
/usr/local/lib/libtspi.so.0 -> libtspi.so.0.0.X
/usr/local/lib/libtspi.so -> libtspi.so.0.0.X
/usr/local/lib/libtspi.la
/usr/local/lib/libtddl.a
/usr/local/var/lib/tpm
By default the build will place everything in /usr/local. To install
in a slightly more predictable place, use `./configure --prefix=/usr`.
'make install' will run ldconfig, but if /usr/local/lib is not in
your /etc/ld.so.conf, this won't make a difference. You may need to
manually add it and run ldconfig as root to allow your apps to link at
run time to libtspi.so.
BUILDING the TSS 64-bit
TrouSerS has been built and tested on ppc64 and x86_64, so please
don't hesitate to report bugs on these platforms. Building everything
64-bit will require a few more flags than are necessary for a 32-bit
platform. Here are some example instructions for ppc64:
$ sh bootstrap.sh
$ export PKG_CONFIG_PATH=/usr/lib64/pkgconfig
$ CFLAGS="-L/usr/lib64 -L/opt/gnome/lib64" LDFLAGS="-L/usr/lib64 \
-L/opt/gnome/lib64" ./configure --libdir="/usr/local/lib64"
$ make
# make install
Hopefully the above example will get you going on building in your
64-bit environment. If you need to do anything special, please send
your build steps to trousers-users@lists.sf.net and I'll include it
here.
USING TROUSERS ON AN ALREADY OWNED TPM
If you've already taken ownership of your TPM using a TSS under another
operating system, there are a few issues you should be aware of.
Auth vs No-Auth SRK: In order to trick trousers into thinking it has taken
ownership of the TPM it's running on, you will need to create a persistent
storage file for trousers to use. Normally trousers would create this file
itself at the time ownership is taken. If your SRK has been given an
authorization password by the non-Linux OS, you will need to move the file
dist/system.data.auth to /usr/local/var/lib/tpm/system.data. If you've
taken ownership of your TPM without issuing a password, move
dist/system.data.noauth to /usr/local/var/lib/tpm/system.data.
Passwords: When entering passwords for keys you'd like to use in both
Linux and other OS's, you'll need to take note of how you entered those
passwords. The TSS spec states that when a password is entered through a
GUI popup dialog box provided by the TSS library, the password should be
converted to the UTF-16 encoding and then hashed using SHA-1, including
the UTF-16 null terminator in the hash calculation.
In order to work around this problem, specify the -u option to the
tpm-tools command line to convert the password to UTF-16 before hashing.
This, however, unfolds yet another problem...
Some TSS stacks aren't compliant with the TSS spec, in that they hash
their passwords without including the terminating null character. This
means that there are effectively two versions of any password set through
a popup dialog box. Trousers will include the terminating null character
in its hashes of UTF-16 data.
We'll do our best to track other TSS software and how it behaves. Please
see the trousers FAQ at http://trousers.sf.net for more information.
ARCHITECTURE
This TSS implementation has several components.
A) The TCS Daemon - A user space daemon that should be (according to
the TSS spec) the only portal to the TPM device driver. At boot
time, the TCS Daemon should be started, it should open the TPM
device driver and from that point on, all requests to the TPM
should go through the TSS stack. The TCSD manages TPM resources
and handles requests from TSP's both local and remote.
B) The TSP shared library - The TSP (TCG Service Provider) is a
shared library that enables applications to talk to TCSD's both
locally and remotely. The TSP also manages resources used in
commicating with the application and the TCSD and transparently
contacts the TCSD whenever necessary.
C) Persistent Storage (PS) files - TSS's have 2 different kinds of
PS for keys. PS can be thought of as a database for keys, with
each key in the database indexed by a UUID.
'User' persistent storage is maintained by the application's TSP
library. Upon writing the first key to User PS, the TSP library
creates a new file at ~/.trousers/user.data, using the effective
user id of the process executing the call to find ~. An environment
variable, TSS_USER_PS_FILE, can also be set to point the TSP library
to a different location for the User PS. This environment variable
has the lifetime of the TSP context, so to store 2 keys in 2
different files, you will need to call Tspi_Context_Close, set the
new location, and open the context again.
'System' persistent storage is controlled by the TCS and stays
valid across all application lifetimes, TCSD restarts and system
resets. Data registered in system PS stays valid until an application
requests that it be removed. The System PS file by default is
/usr/local/var/lib/tpm/system.data. The system PS file is initially
created when ownership of the TPM is first taken.
D) A config file. By default located in /usr/local/etc/tcsd.conf.
RUNNING the TSS
By default, the TCS daemon is not reachable over the internet, so if
you just plan to access it locally, running it as root with a root owned
device node is probably ok. Just make sure your device driver is loaded
and start the tcsd as root.
If you would like to run the TCS daemon as an unprivleged user,
please follow these instructions:
If you're using the device driver from a linux 2.6.12+ kernel and have
udev enabled, you need to add the following line to your
udev.permissions file (usually in /etc/udev somewhere):
tpm[0-9]:tss:tss:0600
and then just load the device driver with:
# modprobe tpm_atmel
or,
# modprobe tpm_natl
start the TCS Core Services daemon, by default /usr/local/sbin/tcsd.
# /usr/local/sbin/tcsd
If you're attempting to make the TCS Core Services daemon communicate with a
softwware TPM through TCP, you must call it using the -e option.
# /usr/local/sbin/tcsd -e
The default values for hostname, port and UN socket device path are "localhost",
"6545" and "/var/run/tpm/tpmd_socket:0". It will search for the IN socket device,
then for an UN socket one, and then for the real TPM in this order.
The default values match with the current open source project required values, if
for instance case you need to set values of your choice, the environment variables
for them are TCSD_TCP_DEVICE_HOSTNAME, TCSD_TCP_DEVICE_PORT if using an IN socket
and TCSD_UN_SOCKET_DEVICE_PATH if running an UN socket.
DEBUGGING
If you've compiled trousers with './configure --enable-debug' and would like
to turn debugging output off at run-time, set the environment variable
TSS_DEBUG_OFF to any value.
BUILDING a TSS RPM
# sh bootstrap.sh
# ./configure
# cd ..
# mv trousers trousers-${version}
# tar zcvf /usr/src/packages/SOURCES/trousers-${version}.tar.gz \
trousers-${version}
# rpmbuild -bb trousers-${version}/dist/trousers.spec
EOF

View File

@ -0,0 +1,58 @@
How to get TrouSerS up and running with an SELinux policy.
Kent Yoder <kyoder@users.sf.net>
This howto assumes a Fedora Core 4 install.
1. Install and load the device driver
# wget http://download.fedora.redhat.com/pub/fedora/linux/core/4/SRPMS/kernel-2.6.11-1.1369_FC4.src.rpm
# rpm -ivh kernel-2.6.11-1.1369_FC4.src.rpm
# cd /usr/src/redhat/SPECS
# rpmbuild -bp ./kernel-2.6.spec
# cd /usr/src/redhat/BUILD/kernel-2.6.11/linux-2.6.11
# make menuconfig
- Goto Device Drivers > Character Devices > TPM Devices
- enable the drivers
# make
# make modules_install
# make install
# reboot
# modprobe tpm_atmel (or others...)
2. Build and install trousers in the system location. The SELinux policy assumes
that trousers is installed in the system location. To change these, edit
the trousers.fc file.
# tar zxvf trousers-0.2.1.tar.gz
# cd trousers-0.2.1
# ./configure --prefix=/usr
# make
# make install
3. Install the SELinux policy sources
# yum install selinux-policy-targeted-sources.noarch
4. Install the trousers te and fc files and load the policy
# cp ./dist/fedora/trousers.te /etc/selinux/targeted/src/policy/domains/program
# cp ./dist/fedora/trousers.fc /etc/selinux/targeted/src/policy/file_contexts/program
# cd /etc/selinux/targeted/src/policy
# make clean
# make reload
# make install
# make relabel
At this point, there should be a trousers-specific type for /dev/tpm0:
# ls -Z /dev/tpm*
crw-rw---- root root system_u:object_r:tcsd_device_t /dev/tpm0
Also, checking the security context of the running tcsd should show it running
with the tcsd_t type:
# ps -Zef |grep tcsd
root:system_r:tcsd_t root 16362 1 0 15:10 ? 00:00:00 /usr/sbin/tcsd
5. That should be it! Send bugs and questions to trousers-users@lists.sf.net.

View File

@ -0,0 +1,2 @@
Please see http://sourceforge.net/tracker/?group_id=126012&atid=704361
for TrouSerS TODOs.

File diff suppressed because it is too large Load Diff

1561
crypto/external/cpl/trousers/dist/config.guess vendored Executable file

File diff suppressed because it is too large Load Diff

1686
crypto/external/cpl/trousers/dist/config.sub vendored Executable file

File diff suppressed because it is too large Load Diff

15223
crypto/external/cpl/trousers/dist/configure vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,403 @@
#
# configure.in for the trousers project
#
AC_INIT(trousers, 0.3.8, trousers-tech@lists.sf.net)
TSS_SPEC_MAJOR=1
TSS_SPEC_MINOR=2
TSS_VER_MAJOR=0
TSS_VER_MINOR=3
# compute $target
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([foreign 1.6])
# Debugging support
AC_ARG_ENABLE([debug],
[AC_HELP_STRING([--enable-debug], [turn on all trousers debugging flags [default=off]])],
AC_MSG_RESULT([*** Enabling debugging at user request ***]),)
# If the user has not set CFLAGS, do something appropriate
test_CFLAGS=${CFLAGS+set}
if test "$test_CFLAGS" != set; then
if test "x$enable_debug" = "xyes"; then
CFLAGS="-O0 -g -DTSS_DEBUG -Wreturn-type"
# CFLAGS="-O0 -g -DTSS_DEBUG -Wreturn-type -DTCSD_SINGLE_THREAD_DEBUG"
else
CFLAGS="-O2"
fi
else
if test "x$enable_debug" = "xyes"; then
CFLAGS="${CFLAGS} -O0 -g -DTSS_DEBUG -Wreturn-type"
fi
fi
# Arch specific stuff
case $target in
*ppc64* | *powerpc64* | *x86_64*)
CFLAGS="$CFLAGS -m64"
;;
*solaris*)
CFLAGS="$CFLAGS -DSOLARIS"
;;
*)
;;
esac
# Non-standard OpenSSL location
AC_MSG_CHECKING([Non-standard OpenSSL location])
AC_ARG_WITH(openssl,
AC_HELP_STRING([--with-openssl=PATH], [Location of openssl libs/includes]),
[OPENSSL_INCLUDE_DIR="$withval/include"
OPENSSL_LIB_DIR="$withval/lib"
if [[ ! -d $OPENSSL_INCLUDE_DIR -o ! -d $OPENSSL_LIB_DIR ]]; then
AC_MSG_ERROR([$OPENSSL_INCLUDE_DIR or $OPENSSL_LIB_DIR doen't exist!])
else
AC_MSG_RESULT([yes])
CFLAGS="$CFLAGS -L$OPENSSL_LIB_DIR -I$OPENSSL_INCLUDE_DIR"
AC_SUBST([OPENSSL_LIB_DIR])
fi],
[AC_MSG_RESULT([no])
AC_SUBST([OPENSSL_LIB_DIR], []) ] )
# The tspi Makefile will look for trspi/crypto/@CRYPTO_PACKAGE@/crypto.c
# Future crypto packages can go in their own subdir of trspi/crypto
# and a check for them should be made here
AC_CHECK_LIB([crypto], [EVP_DigestUpdate],
[CRYPTO_PACKAGE='openssl'],
[AC_MSG_ERROR([openssl is currently the only supported crypto library for trousers. Please install openssl from http://www.openssl.org or the -devel package from your distro])])
AC_SUBST([CRYPTO_PACKAGE])
AC_SUBST(CRYPTOLIB, -lcrypto)
AC_ARG_ENABLE(gcov,
[AC_HELP_STRING([--enable-gcov], [turn on gcov code coverage flags [default=off]])],
[CFLAGS="$CFLAGS -ftest-coverage -fprofile-arcs"
AC_MSG_RESULT([*** Enabling gcov at user request ***])],)
# profiling support
AC_ARG_ENABLE(gprof,
[AC_HELP_STRING([--enable-gprof], [enable profiling with gprof [default=off]])],
[CFLAGS="$CFLAGS -pg"
AC_MSG_RESULT([*** Enabling profiling at user request ***])],)
SPEC_COMP=0
# strict spec compliance
AC_ARG_ENABLE(strict-spec-compliance,
[AC_HELP_STRING([--enable-strict-spec-compliance], [build TrouSerS as strictly spec compliant [default=off]])],
[CFLAGS="$CFLAGS -DTSS_SPEC_COMPLIANCE"
SPEC_COMP=1
AC_MSG_RESULT([*** Enabling spec compliance at user request ***])],)
# daa math lib: gmp or openssl (default openssl)
MATH_DEFINE=BI_OPENSSL
AC_ARG_WITH([gmp],
AC_HELP_STRING([--with-gmp], [build TrouSerS with the GMP math lib (used in DAA)]),
[AC_CHECK_LIB(gmp, [__gmp_rand], [], [])
AC_CHECK_HEADERS([gmp.h])
MATH_DEFINE=BI_GMP
AC_MSG_RESULT([*** Enabling GMP lib at user request ***]) ]
)
case "$MATH_DEFINE" in
BI_OPENSSL)
AC_CHECK_HEADERS([ openssl/bn.h openssl/engine.h])
;;
esac
CFLAGS="$CFLAGS -D$MATH_DEFINE"
GUI=openssl
AC_ARG_WITH(gui,
[AC_HELP_STRING([--with-gui], [type of gui popup (gtk/none) [default=gtk]])],
[GUI=$withval],
[])
if test "x$GUI" = "xgtk"; then
# section imported from Glade compile
pkg_modules="gtk+-2.0 >= 2.0.0"
PKG_CHECK_MODULES(GTK,
[$pkg_modules],
AM_CONDITIONAL(HAVE_GTK, true),
[AM_CONDITIONAL(HAVE_GTK, false)
AC_MSG_ERROR([Please install the gtk2-devel package for your distro or select another gui option.]) ])
AM_CONDITIONAL(OPENSSL_UI, false)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
elif test "x$GUI" = "xopenssl"; then
# We know we have OpenSSL
AM_CONDITIONAL(OPENSSL_UI, true)
AM_CONDITIONAL(HAVE_GTK, false)
elif test "x$GUI" = "xnone"; then
if test $SPEC_COMP -eq 1; then
AC_MSG_ERROR([Popups must be enabled in strict spec compliance mode])
fi
AC_MSG_RESULT([*** Disabling GUI popups at user request ***])
AC_MSG_RESULT([*** WARNING: This may break apps! ***])
CFLAGS="$CFLAGS -DTSS_NO_GUI"
AM_CONDITIONAL(HAVE_GTK, false)
AM_CONDITIONAL(OPENSSL_UI, false)
else
AC_MSG_ERROR(["gtk", "openssl" and "none" are the only supported gui options for trousers])
fi
#
# The default port that the TCS daemon listens on
#
AC_SUBST(TCSD_DEFAULT_PORT, 30003)
#
# The RPC mechanism to build into both libtspi and the tcsd
#
# AC_SUBST(RPC, "soap")
AC_SUBST(RPC, "tcstp")
#
# API= The TSS API level to build by default.
#
# To build a 1.1 TSS, set API=1.1 (./configure --with-api=1.1)
# To build a 1.2 TSS, set API=1.2 (./configure --with-api=1.2)
#
# In order to build a custom TSS API, set API to the lowest API level that
# contains the APIs you need. For instance, if you need only APIs that are
# a subset of the TSS 1.1 API, set this to 1.1. If you need any of the 1.2
# APIs, you'll need to set this to 1.2. Send mail to trousers-tech@lists.sf.net
# if you have questions.
#
API=1.2
AC_ARG_WITH(api,
[AC_HELP_STRING([--with-api], [Version of the TSS API to build [default=1.2]])],
[API=$withval],
[])
if test "x$API" != "x1.1" && test "x$API" != "x1.2"; then
AC_MSG_ERROR(["1.1" and "1.2" are the only supported API versions for trousers.
Custom API build options are available by editing 'configure.in'.])
fi
if test "x$API" = "x1.1" || test "x$API" = "x1.2"; then
# Tspi_Hash_GetHashValue,SetHashValue,UpdateHashValue
AM_CONDITIONAL(TSS_BUILD_HASH, true)
# Tspi_{Get|Set}Attribdata,{Get|Set}AttribUint32
AM_CONDITIONAL(TSS_BUILD_GETSET, true)
# Tspi_TPM_GetRandom,StirRandom
AM_CONDITIONAL(TSS_BUILD_RANDOM, true)
# Tspi_GetCapability (for TSP and TCS capabilities)
AM_CONDITIONAL(TSS_BUILD_CAPS, true)
# Tspi_TPM_GetCapability (for TPM chip capabilities)
AM_CONDITIONAL(TSS_BUILD_CAPS_TPM, true)
# Tspi_GetPolicyObject, Tspi_Policy_SetSecret,FlushSecret,AssignToObject
AM_CONDITIONAL(TSS_BUILD_POLICY, true)
# Tspi_TPM_DirWrite,DirRead
AM_CONDITIONAL(TSS_BUILD_DIR, true)
# Tspi_TPM_GetEvent,GetEvents,GetEventLog
AM_CONDITIONAL(TSS_BUILD_PCR_EVENTS, true)
# Tspi_Hash_Sign,VerifySignature
AM_CONDITIONAL(TSS_BUILD_SIGN, true)
# Tspi_TPM_Quote
AM_CONDITIONAL(TSS_BUILD_QUOTE, true)
# Tspi_PcrComposite_{Set|Get}PcrValue,SelectPcrIndex
AM_CONDITIONAL(TSS_BUILD_PCR_COMP, true)
# Tspi_Data_Seal,Unseal
AM_CONDITIONAL(TSS_BUILD_SEAL, true)
# Tspi_ChangeAuth,ChangeAuthAsym
AM_CONDITIONAL(TSS_BUILD_CHANGEAUTH, true)
# Tspi_Data_Bind,Unbind
AM_CONDITIONAL(TSS_BUILD_BIND, true)
# Tspi_TPM_TakeOwnership,ClearOwner (REQ: EK)
AM_CONDITIONAL(TSS_BUILD_OWN, true)
# Tspi_TPM_CreateEndorsementKey,GetPubEndorsementKey
AM_CONDITIONAL(TSS_BUILD_EK, true)
# Tspi_Context_RegisterKey,UnregisterKey,LoadKeyByUUID,GetKeyByUUID,GetKeyByPublicInfo,
# GetRegisteredKeysByUUID
AM_CONDITIONAL(TSS_BUILD_PS, true)
# Tspi_TPM_{Set|Get}Status
AM_CONDITIONAL(TSS_BUILD_ADMIN, true)
# Tspi_TPM_CollateIdentityRequest,ActivateIdentity
AM_CONDITIONAL(TSS_BUILD_AIK, true)
# Tspi_Key_CertifyKey
AM_CONDITIONAL(TSS_BUILD_CERTIFY, true)
# Tspi_TPM_CreateMaintenanceArchive,KillMaintenanceFeature,LoadMaintenancePubKey,
# CheckMaintenancePubKey
AM_CONDITIONAL(TSS_BUILD_MAINT, true)
# Tspi_TPM_AuthorizeMigrationTicket,Key_CreateMigrationBlob,ConvertMigrationBlob
AM_CONDITIONAL(TSS_BUILD_MIGRATION, true)
# Tspi_Context_LoadKeyByBlob,Key_LoadKey,UnloadKey,CreateKey,WrapKey,GetPubKey
AM_CONDITIONAL(TSS_BUILD_KEY, true)
# Tspi_TPM_PcrExtend,PcrRead,PcrReset
AM_CONDITIONAL(TSS_BUILD_PCR_EXTEND, true)
# Tspi_TPM_SelfTestFull,CertifySelfTest,GetTestResult
AM_CONDITIONAL(TSS_BUILD_SELFTEST, true)
fi
if test "x$API" = "x1.2"; then
AM_CONDITIONAL(TSS_BUILD_TSS12, true)
# Don't build DAA until the API is fixed - KEY
AM_CONDITIONAL(TSS_BUILD_DAA, false)
AM_CONDITIONAL(TSS_BUILD_PCR_COMP12, true)
AM_CONDITIONAL(TSS_BUILD_COUNTER, true)
AM_CONDITIONAL(TSS_BUILD_TICK, true)
AM_CONDITIONAL(TSS_BUILD_TRANSPORT, true)
AM_CONDITIONAL(TSS_BUILD_ASN1, true)
AM_CONDITIONAL(TSS_BUILD_NV, true)
AM_CONDITIONAL(TSS_BUILD_AUDIT, true)
AM_CONDITIONAL(TSS_BUILD_SEALX, true)
AM_CONDITIONAL(TSS_BUILD_DELEGATION, true)
AM_CONDITIONAL(TSS_BUILD_QUOTE2,true)
# CMK depends on MIGRATION
AM_CONDITIONAL(TSS_BUILD_CMK, true)
else
AM_CONDITIONAL(TSS_BUILD_TSS12, false)
AM_CONDITIONAL(TSS_BUILD_DAA, false)
AM_CONDITIONAL(TSS_BUILD_PCR_COMP12, false)
AM_CONDITIONAL(TSS_BUILD_COUNTER, false)
AM_CONDITIONAL(TSS_BUILD_TICK, false)
AM_CONDITIONAL(TSS_BUILD_TRANSPORT, false)
AM_CONDITIONAL(TSS_BUILD_ASN1, false)
AM_CONDITIONAL(TSS_BUILD_NV, false)
AM_CONDITIONAL(TSS_BUILD_AUDIT, false)
AM_CONDITIONAL(TSS_BUILD_SEALX, false)
AM_CONDITIONAL(TSS_BUILD_DELEGATION, false)
AM_CONDITIONAL(TSS_BUILD_QUOTE2,false)
AM_CONDITIONAL(TSS_BUILD_CMK, false)
fi
#
# There's no need to edit anything below, these conditionals control the building
# of files that support the files above, which all contain TSS APIs
#
AM_CONDITIONAL(TSS_BUILD_NV_LIST, test -z $TSS_BUILD_NV_TRUE)
AM_CONDITIONAL(TSS_BUILD_NV_SUPPORT, test -z $TSS_BUILD_NV_TRUE)
AM_CONDITIONAL(TSS_BUILD_GET_FLAGS, test -z $TSS_BUILD_ADMIN_TRUE || \
test -z $TSS_BUILD_CAPS_TPM_TRUE)
AM_CONDITIONAL(TSS_BUILD_PCRS_LIST, test -z $TSS_BUILD_SEAL_TRUE || \
test -z $TSS_BUILD_QUOTE_TRUE || \
test -z $TSS_BUILD_PCRS_TRUE || \
test -z $TSS_BUILD_PCR_COMP_TRUE || \
test -z $TSS_BUILD_SEALX_TRUE)
AM_CONDITIONAL(TSS_BUILD_HASH_LIST, test -z $TSS_BUILD_SIGN_TRUE || test -z $TSS_BUILD_HASH_TRUE)
AM_CONDITIONAL(TSS_BUILD_ENCDATA_LIST, test -z $TSS_BUILD_SEAL_TRUE || \
test -z $TSS_BUILD_CHANGEAUTH_TRUE || \
test -z $TSS_BUILD_BIND_TRUE || \
test -z $TSS_BUILD_SEALX_TRUE)
AM_CONDITIONAL(TSS_BUILD_RSAKEY_LIST, test -z $TSS_BUILD_ADMIN_TRUE || \
test -z $TSS_BUILD_EK_TRUE || \
test -z $TSS_BUILD_MIGRATION_TRUE || \
test -z $TSS_BUILD_MAINT_TRUE || \
test -z $TSS_BUILD_CERTIFY_TRUE || \
test -z $TSS_BUILD_AIK_TRUE || \
test -z $TSS_BUILD_QUOTE_TRUE || \
test -z $TSS_BUILD_BIND_TRUE || \
test -z $TSS_BUILD_CHANGEAUTH_TRUE || \
test -z $TSS_BUILD_OWN_TRUE || \
test -z $TSS_BUILD_SIGN_TRUE || \
test -z $TSS_BUILD_PS_TRUE || \
test -z $TSS_BUILD_SEAL_TRUE || \
test -z $TSS_BUILD_DAA_TRUE || \
test -z $TSS_BUILD_KEY_TRUE || \
test -z $TSS_BUILD_SEALX_TRUE)
AM_CONDITIONAL(TSS_BUILD_AUTH, test -z $TSS_BUILD_HASH_TRUE || \
test -z $TSS_BUILD_CAPS_TRUE || \
test -z $TSS_BUILD_CAPS_TPM_TRUE || \
test -z $TSS_BUILD_POLICY_TRUE || \
test -z $TSS_BUILD_DIR_TRUE || \
test -z $TSS_BUILD_PCR_EVENTS_TRUE || \
test -z $TSS_BUILD_SIGN_TRUE || \
test -z $TSS_BUILD_QUOTE_TRUE || \
test -z $TSS_BUILD_PCR_COMP_TRUE || \
test -z $TSS_BUILD_SEAL_TRUE || \
test -z $TSS_BUILD_SEALX_TRUE || \
test -z $TSS_BUILD_CHANGEAUTH_TRUE || \
test -z $TSS_BUILD_BIND_TRUE || \
test -z $TSS_BUILD_OWN_TRUE || \
test -z $TSS_BUILD_PS_TRUE || \
test -z $TSS_BUILD_ADMIN_TRUE || \
test -z $TSS_BUILD_AIK_TRUE || \
test -z $TSS_BUILD_EK_TRUE || \
test -z $TSS_BUILD_CERTIFY_TRUE || \
test -z $TSS_BUILD_MAINT_TRUE || \
test -z $TSS_BUILD_MIGRATION_TRUE || \
test -z $TSS_BUILD_KEY_TRUE || \
test -z $TSS_BUILD_PCR_EXTEND_TRUE || \
test -z $TSS_BUILD_SELFTEST_TRUE || \
test -z $TSS_BUILD_DAA_TRUE)
AM_CONDITIONAL(TSS_BUILD_ASYM_CRYPTO, test -z $TSS_BUILD_AIK_TRUE || \
test -z $TSS_BUILD_CERTIFY_TRUE || \
test -z $TSS_BUILD_QUOTE_TRUE || \
test -z $TSS_BUILD_EK_TRUE || \
test -z $TSS_BUILD_CHANGEAUTH_TRUE || \
test -z $TSS_BUILD_BIND_TRUE || \
test -z $TSS_BUILD_OWN_TRUE || \
test -z $TSS_BUILD_SELFTEST_TRUE || \
test -z $TSS_BUILD_SIGN_TRUE || \
test -z $TSS_BUILD_KEY_TRUE || \
test -z $TSS_BUILD_DAA_TRUE)
AM_CONDITIONAL(TSS_BUILD_SYM_CRYPTO, test -z $TSS_BUILD_AIK_TRUE || \
test -z $TSS_BUILD_TRANSPORT_TRUE)
#GETTEXT_PACKAGE=trousers
#AC_SUBST(GETTEXT_PACKAGE)
#AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
dnl Add the languages which your application supports here.
#ALL_LINGUAS=""
#AM_GLIB_GNU_GETTEXT
# end Glade section
AC_CHECK_HEADER(pthread.h, [AC_DEFINE(HAVE_PTHREAD_H, 1, [pthread header])])
AC_DISABLE_STATIC
AC_PROG_CC
AC_PROG_LIBTOOL
AC_C_BIGENDIAN([AC_DEFINE(_BIG_ENDIAN, 1, [big-endian host])])
AC_CHECK_DECL(htole32, [AC_DEFINE(HTOLE_DEFINED, 1, [htole32 function is available])])
AC_CHECK_HEADER(sys/byteorder.h, [AC_DEFINE(HAVE_BYTEORDER_H, 1, [sys/byteorder.h header])])
AC_CHECK_FUNC(daemon, [ AC_DEFINE(HAVE_DAEMON, 1, [daemon function is available]) ])
if test "x${GCC}" = "xyes"; then
CFLAGS="$CFLAGS -W -Wall -Werror -Wno-unused-parameter -Wsign-compare"
fi
CFLAGS="$CFLAGS -I../include \
-DTCSD_DEFAULT_PORT=${TCSD_DEFAULT_PORT} -DTSS_VER_MAJOR=${TSS_VER_MAJOR} \
-DTSS_VER_MINOR=${TSS_VER_MINOR} -DTSS_SPEC_MAJOR=${TSS_SPEC_MAJOR} \
-DTSS_SPEC_MINOR=${TSS_SPEC_MINOR}"
#CFLAGS="$CFLAGS -I../include -std=c99 -pedantic -W -Wall"
KERNEL_VERSION=`uname -r`
AC_SUBST(CFLAGS)
# When we build the rpms, prefix will be /usr. This'll do some things that make sense,
# like put our sbin stuff in /usr/sbin and our library in /usr/lib. It'll do some other
# things that don't make sense like put our config file in /usr/etc. So, I'll just hack
# it here. If the --prefix option isn't specified during configure, let it all go to
# /usr/local, even /usr/local/etc. :-P
if test x"${prefix}" = x"/usr"; then
sysconfdir="/etc"
localstatedir="/var"
mandir="/usr/share/man"
elif test x"${prefix}" = x"NONE"; then
localstatedir="/usr/local/var"
fi
AC_OUTPUT(dist/tcsd.conf \
dist/fedora/trousers.spec \
dist/trousers.spec \
Makefile \
src/Makefile \
src/include/Makefile \
src/tcs/Makefile \
src/tddl/Makefile \
src/tspi/Makefile \
src/trspi/Makefile \
src/tcsd/Makefile \
tools/Makefile \
man/man8/tcsd.8 \
man/man5/tcsd.conf.5 \
dist/Makefile \
man/Makefile \
man/man3/Makefile \
man/man5/Makefile \
man/man8/Makefile)
echo "CFLAGS=$CFLAGS"

630
crypto/external/cpl/trousers/dist/depcomp vendored Executable file
View File

@ -0,0 +1,630 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2009-04-28.21; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
# Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u="sed s,\\\\\\\\,/,g"
depmode=msvisualcpp
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
# Add `dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mechanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

View File

@ -0,0 +1,17 @@
EXTRA_DIST = system.data.auth system.data.noauth \
fedora/fedora.initrd.tcsd
install: install-exec-hook
if test ! -e ${DESTDIR}/@sysconfdir@/tcsd.conf; then mkdir -p ${DESTDIR}/@sysconfdir@ && cp tcsd.conf ${DESTDIR}/@sysconfdir@; fi
/bin/chown tss:tss ${DESTDIR}/@sysconfdir@/tcsd.conf || true
/bin/chmod 0600 ${DESTDIR}/@sysconfdir@/tcsd.conf
install-exec-hook:
/usr/sbin/groupadd tss || true
/usr/sbin/useradd -r tss -g tss || true
/bin/sh -c 'if [ ! -e ${DESTDIR}/@localstatedir@/lib/tpm ];then mkdir -p ${DESTDIR}/@localstatedir@/lib/tpm; fi'
/bin/chown tss:tss ${DESTDIR}/@localstatedir@/lib/tpm || true
/bin/chmod 0700 ${DESTDIR}/@localstatedir@/lib/tpm
uninstall-hook:
/usr/sbin/userdel tss || true
/usr/sbin/groupdel tss || true

View File

@ -0,0 +1,386 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = dist
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/tcsd.conf.in $(srcdir)/trousers.spec.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = tcsd.conf trousers.spec
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CRYPTOLIB = @CRYPTOLIB@
CRYPTO_PACKAGE = @CRYPTO_PACKAGE@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENSSL_LIB_DIR = @OPENSSL_LIB_DIR@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
RPC = @RPC@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
TCSD_DEFAULT_PORT = @TCSD_DEFAULT_PORT@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = system.data.auth system.data.noauth \
fedora/fedora.initrd.tcsd
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign dist/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign dist/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
tcsd.conf: $(top_builddir)/config.status $(srcdir)/tcsd.conf.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
trousers.spec: $(top_builddir)/config.status $(srcdir)/trousers.spec.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile
installdirs:
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am:
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
.MAKE: install-am install-exec-am install-strip uninstall-am
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-exec-hook install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
uninstall uninstall-am uninstall-hook
install: install-exec-hook
if test ! -e ${DESTDIR}/@sysconfdir@/tcsd.conf; then mkdir -p ${DESTDIR}/@sysconfdir@ && cp tcsd.conf ${DESTDIR}/@sysconfdir@; fi
/bin/chown tss:tss ${DESTDIR}/@sysconfdir@/tcsd.conf || true
/bin/chmod 0600 ${DESTDIR}/@sysconfdir@/tcsd.conf
install-exec-hook:
/usr/sbin/groupadd tss || true
/usr/sbin/useradd -r tss -g tss || true
/bin/sh -c 'if [ ! -e ${DESTDIR}/@localstatedir@/lib/tpm ];then mkdir -p ${DESTDIR}/@localstatedir@/lib/tpm; fi'
/bin/chown tss:tss ${DESTDIR}/@localstatedir@/lib/tpm || true
/bin/chmod 0700 ${DESTDIR}/@localstatedir@/lib/tpm
uninstall-hook:
/usr/sbin/userdel tss || true
/usr/sbin/groupdel tss || true
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,110 @@
#!/bin/bash
#
# Init file for the TrouSerS TCG Core Services daemon
#
# chkconfig: - 90 10
# description: TrouSerS server daemon
#
# processname: tcsd
# config: /etc/tcsd.conf
# pidfile: /var/run/tcsd.pid
#
# Return values according to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
prog="tcsd"
# source function library
. /etc/rc.d/init.d/functions
# Allow anyone to run status
if [ "$1" = "status" ] ; then
status $prog
RETVAL=$?
exit $RETVAL
fi
# Check that we are root ... so non-root users stop here
test $EUID = 0 || exit 4
# pull in sysconfig settings
test -f /etc/sysconfig/tcsd && . /etc/sysconfig/tcsd
RETVAL=0
# Some variables to make the below more readable
TCSD=/usr/sbin/tcsd
PID_FILE=/var/run/tcsd.pid
INSMOD=/sbin/insmod
LSMOD=/sbin/lsmod
GREP=/bin/grep
load_drivers()
{
for d in `echo /lib/modules/$(uname -r)/kernel/drivers/char/tpm/tpm_*`; do
$INSMOD $d
if test $? -eq 0; then
break;
fi
done
}
check_drivers()
{
$LSMOD | $GREP tpm_
}
start()
{
test -x $TCSD || exit 5
test -f /etc/tcsd.conf || exit 6
check_drivers || load_drivers || failure
echo -n $"Starting $prog: "
$TCSD $OPTIONS && success || failure
RETVAL=$?
[ "$RETVAL" = 0 ] && touch /var/lock/subsys/tcsd
echo
}
stop()
{
echo -n $"Stopping $prog: "
killproc $prog
RETVAL=$?
[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/tcsd
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
test -f /etc/tcsd.conf || exit 6
stop
start
;;
reload|force-reload)
restart
;;
condrestart|try-restart)
if [ -f /var/lock/subsys/tcsd ] ; then
restart
fi
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
RETVAL=3
esac
exit $RETVAL

View File

@ -0,0 +1,121 @@
# RPM specfile for the trousers project on Fedora
%define name @PACKAGE@
%define version @VERSION@
%define release 1
Name: %{name}
Summary: Implementation of the TCG's Software Stack v1.1 Specification
Version: %{version}
Release: %{release}
License: CPL
Group: Development/Libraries
Source: %{name}-%{version}.tar.gz
Url: http://www.sf.net/projects/trousers
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libtool, gtk2-devel, openssl-devel
Requires: gtk+ >= 2.0, openssl
Requires(post): /sbin/ldconfig
Requires(post): /sbin/chkconfig
Requires(postun): /sbin/ldconfig
Requires(postun): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
%description
TrouSerS is an implementation of the Trusted Computing Group's Software Stack
(TSS) specification. You can use TrouSerS to write applications that make use
of your TPM hardware. TPM hardware can create, store and use RSA keys
securely (without ever being exposed in memory), verify a platform's software
state using cryptographic hashes and more.
%package devel
Summary: TrouSerS header files and documentation
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
Header files and man pages for use in creating Trusted Computing enabled
applications.
%prep
%setup -q
%build
autoreconf
%configure --disable-static --prefix=/usr --libdir=%{_libdir}
make %{?_smp_mflags}
%clean
[ "${RPM_BUILD_ROOT}" != "/" ] && [ -d ${RPM_BUILD_ROOT} ] && rm -rf ${RPM_BUILD_ROOT};
#
# $1 is the number of entries in the RPM database for the package after the step is
# executed. So in the post step, if $1 is 1, then this is the first time we've been
# installed. If its 2, we're upgrading.
#
%post
/sbin/ldconfig
if [ $1 = 1 ]; then
/sbin/chkconfig --add tcsd
if [ $? == 0 ]; then
/sbin/chkconfig --level 35 tcsd on
fi
fi
%post devel -p /sbin/ldconfig
%install
# This line keeps build machines from being affected
[ "${RPM_BUILD_ROOT}" != "/" ] && [ -d ${RPM_BUILD_ROOT} ] && rm -rf ${RPM_BUILD_ROOT};
mkdir -p ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}/%{_initrddir}
cp dist/fedora/fedora.initrd.tcsd ${RPM_BUILD_ROOT}/%{_initrddir}/tcsd
make install DESTDIR=${RPM_BUILD_ROOT}
rm -f ${RPM_BUILD_ROOT}/%{_libdir}/libtspi.la
%preun
if [ $1 = 0 ]; then
/sbin/service tcsd stop &> /dev/null
/sbin/chkconfig --del tcsd
fi
%postun
/sbin/ldconfig
if [ $1 -gt 1 ]; then
/sbin/service tcsd condrestart &>/dev/null
fi
%postun devel -p /sbin/ldconfig
%files
%doc README AUTHORS LICENSE
%defattr(755, root, root)
%attr(755, tss, tss) %{_sbindir}/tcsd
%{_libdir}/libtspi.so.?
%{_libdir}/libtspi.so.?.?.?
%config(noreplace) %attr(600, tss, tss) %{_sysconfdir}/tcsd.conf
%attr(644, root, root) %{_mandir}/man5/*
%attr(644, root, root) %{_mandir}/man8/*
%{_initrddir}/tcsd
# The files to be used by developers, 'trousers-devel'
%files devel
%attr(755, root, root) %{_libdir}/libtspi.so
%defattr(644, root, root)
%{_libdir}/libtddl.a
%{_includedir}/tss/*.h
%{_includedir}/trousers/*.h
%{_mandir}/man3/Tspi_*
%changelog
* Mon Nov 12 2007 Kent Yoder <kyoder@users.sf.net> - 0.3.1
- Updated specfile for comments in RHBZ#323441
* Wed Jun 07 2006 Kent Yoder <kyoder@users.sf.net> - 0.2.6-1
- Updated build section to use smp_mflags
- Removed .la file from installed dest and files section
* Tue Jun 06 2006 Kent Yoder <kyoder@users.sf.net> - 0.2.6-1
- Initial add of changelog tag for trousers CVS

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,170 @@
#
# This is the configuration file for the trousers tcsd. (The Trusted Computing
# Software Stack Core Services Daemon).
#
# Defaults are listed below, commented out
#
# Send questions to: trousers-users@lists.sourceforge.net
#
# Option: port
# Values: 1 - 65535
# Description: The port that the tcsd will listen on.
#
# port = 30003
#
# Option: num_threads
# Values: 1 - 65535
# Description: The number of threads that the tcsd will spawn internally.
#
# num_threads = 10
#
# Option: system_ps_file
# Values: Any absolute directory path
# Description: Path where the tcsd creates its persistent storage file.
#
# system_ps_file = @localstatedir@/lib/tpm/system.data
#
# Option: firmware_log_file
# Values: Any absolute directory path
# Description: Path to the file containing the current firmware PCR event
# log data. The interface to this log is usually provided by the TPM
# device driver.
#
# firmware_log_file = /sys/kernel/security/tpm0/binary_bios_measurements
#
# Option: kernel_log_file
# Values: Any absolute directory path
# Description: Path to the file containing the current kernel PCR event
# log data. By default, this data will be parsed in the format provided
# by the Integrity Measurement Architecture LSM. See
# http://sf.net/projects/linux-ima for more info on getting IMA.
#
#
# kernel_log_file = /sys/kernel/security/ima/binary_runtime_measurements
#
# Option: firmware_pcrs
# Values: PCR indices, separated by commas (no whitespace)
# Description: A list of PCR indices that are manipulated only by the system
# firmware and therefore are not extended or logged by the TCSD.
#
# firmware_pcrs =
#
# Option: kernel_pcrs
# Values: PCR indices, separated by commas (no whitespace)
# Description: A list of PCR indices that are manipulated only by the kernel
# and therefore are not extended or logged by the TCSD.
#
# kernel_pcrs =
#
# Option: platform_cred
# Values: Any absolute directory path (example: /path/to/platform.cert)
# Description: Path to the file containing your TPM's platform credential.
# The platform credential may have been provided to you by your TPM
# manufacturer. If so, set platform_cred to the path to the file on disk.
# Whenever a new TPM identity is created, the credential will be used. See
# Tspi_TPM_CollateIdentityRequest(3) for more information.
#
# platform_cred =
#
# Option: conformance_cred
# Values: Any absolute directory path (example: /path/to/conformance.cert)
# Description: Path to the file containing your TPM's conformance credential.
# The conformance credential may have been provided to you by your TPM
# manufacturer. If so, set conformance_cred to the path to the file on disk.
# Whenever a new TPM identity is created, the credential will be used. See
# Tspi_TPM_CollateIdentityRequest(3) for more information.
#
# conformance_cred =
#
# Option: endorsement_cred
# Values: Any absolute directory path (example: /path/to/endorsement.cert)
# Description: Path to the file containing your TPM's endorsement credential.
# The endorsement credential may have been provided to you by your TPM
# manufacturer. If so, set endorsement_cred to the path to the file on disk.
# Whenever a new TPM identity is created, the credential will be used. See
# Tspi_TPM_CollateIdentityRequest(3) for more information.
#
# endorsement_cred =
#
# Option: remote_ops
# Values: TCS operation names, separated by commas (no whitespace)
# Description: A list of TCS commands which will be allowed to be executed
# on this machine's TCSD by TSP's on non-local hosts (over the internet).
# By default, access to all operations is denied.
#
# possible values: seal - encrypt data bound to PCR values
# unseal - decrypt data bound to PCR values
# registerkey - store keys in system persistent storage [Disk write access!]
# unregisterkey - remove keys from system persistent storage [Disk write access!]
# loadkey - load a key into the TPM
# createkey - create a key using the TPM
# sign - encrypt data using a private key
# random - generate random numbers
# getcapability - query the TCS/TPM for its capabilities
# unbind - decrypt data
# quote - request a signed blob containing all PCR values
# readpubek - access the TPM's Public EndorsementKey
# getregisteredkeybypublicinfo - Search system persistent storage for a public key
# getpubkey - Retrieve a loaded key's public data from inside the TPM
# selftest - execute selftest and test results ordinals
#
# remote_ops =
#
# Option: enforce_exclusive_transport
# Values: 0 or 1
# Description: When an application opens a transport session with the TPM, one
# of the options available is an "exclusive" session, meaning that the TPM
# will not execute any commands other than those coming through the transport
# session for the lifetime of the session. The TCSD can choose to enforce this
# option or not. By default, exclusive sessions are not enforced, since this
# could allow for a denial of service to the TPM.
#
# enforce_exclusive_transport = 0
#
# Option: host_platform_class
# Values: One of the TCG platform class specifications
# PC_11 - PC Client System, version 1.1
# PC_12 - PC Client System, version 1.2
# PDA_12 - PDA System, version 1.2
# SERVER_12 - Server System, version 1.2
# MOBILE_12 - Mobile Phone System, version 1.2
#
# Description: This option determines the host platform (host the TCS system
# is running on) class, among those specified by the Trusted Computing group
# on https://www.trustedcomputinggroup.org/specs/. This class will be reported
# by the TCS daemon when an application queries it using the
# TSS_TCSCAP_PROP_HOST_PLATFORM sub-capability. The default is PC_12.
#
# host_platform_class = PC_12
#
# Option: all_platform_classes
# Values: TCG Platform class names, separated by commas (no whitespaces)
# PC_11 - PC Client System, version 1.1
# PC_12 - PC Client System, version 1.2
# PDA_12 - PDA System, version 1.2
# SERVER_12 - Server System, version 1.2
# MOBILE_12 - Mobile Phone System, version 1.2
#
# Description: This option determines all the platform classes supported by the
# TCS daemon. This list must not include the value set as "host_platform_class"
# specified above. Since by default TrouSerS supports all TPM 1.2 functionality,
# the default is all 1.2 and 1.1 platform classes.
#
# all_platform_classes = PC_11,PDA_12,SERVER_12,MOBILE_12
#

View File

@ -0,0 +1,118 @@
%define name @PACKAGE@
%define version @VERSION@
%define release 1
%ifarch ppc64 x86_64 ia64 s390x
%define arch64 1
%define packages64 cairo-devel-64bit, glitz-devel-64bit, fontconfig-devel-64bit, freetype2-devel-64bit, xorg-x11-devel-64bit, libpng-devel-64bit
%define pkgconfig_path /opt/gnome/lib64/pkgconfig:/usr/lib64/pkgconfig
%endif
# RPM specfile for the trousers project
Name: %{name}
Summary: Implementation of the TCG's Software Stack v1.1 Specification
Version: %{version}
Release: %{release}
License: CPL
Group: Productivity/Security
Source: %{name}-%{version}.tar.gz
Url: http://www.sf.net/projects/trousers
BuildRoot: %{_tmppath}/%{name}-%{version}-root
PreReq: /usr/sbin/groupadd /usr/sbin/useradd /bin/chown
Requires: gtk+ >= 2.0, openssl
BuildRequires: gtk+ >= 2.0, openssl %{?arch64:,%{packages64}}
%description
TrouSerS is an implementation of the Trusted Computing Group's Software Stack
(TSS) specification. You can use TrouSerS to write applications that make use
of your TPM hardware. TPM hardware can create, store and use RSA keys
securely (without ever being exposed in memory), verify a platform's software
state using cryptographic hashes and more.
%package devel
Summary: TrouSerS header files and documentation
Group: Productivity/Security
Requires: trousers
%description devel
Header files and man pages for use in creating Trusted Computing enabled
applications.
%prep
%setup
%build
%{?arch64:export PKG_CONFIG_PATH=%{pkgconfig_path}:$PKG_CONFIG_PATH}
./configure --prefix=/usr --libdir=%{_libdir}
make
%clean
[ "${RPM_BUILD_ROOT}" != "/" ] && [ -d ${RPM_BUILD_ROOT} ] && rm -rf ${RPM_BUILD_ROOT};
%pre
# add group tss
/usr/sbin/groupadd tss || {
RC=$?
case $RC in
9) # group 'tss' already exists
;;
*) # some other error; fail
echo "Couldn't create group 'tss'. Exiting."
exit $RC;;
esac
}
# add user tss
/usr/sbin/useradd -r tss || {
RC=$?
case $RC in
9) # user 'tss' already exists
;;
*) # some other error; fail
echo "Couldn't create user 'tss'. Exiting."
exit $RC;;
esac
}
%post
# create the default location for the persistent store files
if test -e %{_localstatedir}/tpm; then
mkdir -p %{_localstatedir}/tpm
/bin/chown tss:tss %{_localstatedir}/tpm
/bin/chmod 1777 %{_localstatedir}/tpm
fi
# chown the daemon
/bin/chown tss:tss %{_sbindir}/tcsd
/sbin/ldconfig
%install
# This line keeps build machines from being affected
[ "${RPM_BUILD_ROOT}" != "/" ] && [ -d ${RPM_BUILD_ROOT} ] && rm -rf ${RPM_BUILD_ROOT};
mkdir -p ${RPM_BUILD_ROOT}
make install DESTDIR=${RPM_BUILD_ROOT}
%postun
/sbin/ldconfig
/usr/sbin/userdel tss
/usr/sbin/groupdel tss
# The files for the base package, 'trousers'
%files
%doc README AUTHORS
%attr(755, tss, tss) %{_sbindir}/tcsd
%{_libdir}/libtspi.la
%{_libdir}/libtspi.so*
%{_libdir}/libtddl.a
%config %attr(600, tss, tss) %{_sysconfdir}/tcsd.conf
%{_mandir}/man5/*
%{_mandir}/man8/*
# The files to be used by developers, 'trousers-devel'
%files devel
%{_includedir}/tss/*.h
%{_includedir}/trousers/*.h
%{_mandir}/man3/Tspi_*

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,15 @@
Tspi_TPM_GetEvents
Events in the TCS event log are 0 indexed. So, a call such as:
UINT32 five = 5;
Tspi_TPM_GetEvents(hTPM, ulPcrIndex, 1, &five, &prgbPcrEvents);
will get you 5 events (assuming at least 6 events have happened on the PCR) which
will be the 2nd through 6th events on the PCR. (Since the 1st event is at index 0).
This is probably what you want:
UINT32 five = 5;
Tspi_TPM_GetEvents(hTPM, ulPcrIndex, 0, &five, &prgbPcrEvents);

520
crypto/external/cpl/trousers/dist/install-sh vendored Executable file
View File

@ -0,0 +1,520 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2009-04-28.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
nl='
'
IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
if test -z "$doit"; then
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
no_target_directory=
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *' '* | *'
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
trap '(exit $?); exit' 1 2 13 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writeable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
-*) prefix='./';;
*) prefix='';;
esac
eval "$initialize_posix_glob"
oIFS=$IFS
IFS=/
$posix_glob set -f
set fnord $dstdir
shift
$posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
test -z "$d" && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

8413
crypto/external/cpl/trousers/dist/ltmain.sh vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
SUBDIRS = man3 man5 man8

View File

@ -0,0 +1,564 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = man
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CRYPTOLIB = @CRYPTOLIB@
CRYPTO_PACKAGE = @CRYPTO_PACKAGE@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENSSL_LIB_DIR = @OPENSSL_LIB_DIR@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
RPC = @RPC@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
TCSD_DEFAULT_PORT = @TCSD_DEFAULT_PORT@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = man3 man5 man8
all: all-recursive
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign man/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-recursive
all-am: Makefile
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic clean-libtool \
ctags ctags-recursive distclean distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,90 @@
man3_MANS = Tspi_ChangeAuth.3 \
Tspi_ChangeAuthAsym.3 \
Tspi_Context_Close.3 \
Tspi_Context_CloseObject.3 \
Tspi_Context_Connect.3 \
Tspi_Context_Create.3 \
Tspi_Context_CreateObject.3 \
Tspi_Context_FreeMemory.3 \
Tspi_Context_GetCapability.3 \
Tspi_Context_GetDefaultPolicy.3 \
Tspi_Context_GetKeyByPublicInfo.3 \
Tspi_Context_GetKeyByUUID.3 \
Tspi_Context_GetRegisteredKeysByUUID.3 \
Tspi_Context_GetRegisteredKeysByUUID2.3 \
Tspi_Context_GetTpmObject.3 \
Tspi_Context_LoadKeyByBlob.3 \
Tspi_Context_LoadKeyByUUID.3 \
Tspi_Context_RegisterKey.3 \
Tspi_Context_UnregisterKey.3 \
Tspi_Data_Bind.3 \
Tspi_Data_Seal.3 \
Tspi_Data_Unbind.3 \
Tspi_Data_Unseal.3 \
Tspi_DecodeBER_TssBlob.3 \
Tspi_EncodeDER_TssBlob.3 \
Tspi_GetAttribData.3 \
Tspi_GetAttribUint32.3 \
Tspi_GetPolicyObject.3 \
Tspi_Hash_GetHashValue.3 \
Tspi_Hash_SetHashValue.3 \
Tspi_Hash_Sign.3 \
Tspi_Hash_UpdateHashValue.3 \
Tspi_Hash_VerifySignature.3 \
Tspi_Key_CertifyKey.3 \
Tspi_Key_ConvertMigrationBlob.3 \
Tspi_Key_CreateKey.3 \
Tspi_Key_CreateMigrationBlob.3 \
Tspi_Key_GetPubKey.3 \
Tspi_Key_LoadKey.3 \
Tspi_Key_UnloadKey.3 \
Tspi_Key_WrapKey.3 \
Tspi_PcrComposite_GetPcrValue.3 \
Tspi_PcrComposite_SelectPcrIndex.3 \
Tspi_PcrComposite_SetPcrValue.3 \
Tspi_Policy_AssignToObject.3 \
Tspi_Policy_FlushSecret.3 \
Tspi_Policy_SetSecret.3 \
Tspi_SetAttribData.3 \
Tspi_SetAttribUint32.3 \
Tspi_TPM_AuthorizeMigrationTicket.3 \
Tspi_TPM_CertifySelfTest.3 \
Tspi_TPM_CheckMaintenancePubKey.3 \
Tspi_TPM_ClearOwner.3 \
Tspi_TPM_CollateIdentityRequest.3 \
Tspi_TPM_CreateEndorsementKey.3 \
Tspi_TPM_CreateMaintenanceArchive.3 \
Tspi_TPM_DirRead.3 \
Tspi_TPM_DirWrite.3 \
Tspi_TPM_GetCapability.3 \
Tspi_TPM_GetEvent.3 \
Tspi_TPM_GetEventLog.3 \
Tspi_TPM_GetEvents.3 \
Tspi_TPM_GetPubEndorsementKey.3 \
Tspi_TPM_GetRandom.3 \
Tspi_TPM_GetStatus.3 \
Tspi_TPM_GetTestResult.3 \
Tspi_TPM_KillMaintenanceFeature.3 \
Tspi_TPM_LoadMaintenancePubKey.3 \
Tspi_TPM_PcrRead.3 \
Tspi_TPM_PcrExtend.3 \
Tspi_TPM_Quote.3 \
Tspi_TPM_SelfTestFull.3 \
Tspi_TPM_SetStatus.3 \
Tspi_TPM_StirRandom.3 \
Tspi_TPM_TakeOwnership.3 \
Tspi_DAA_IssueCredential.3 \
Tspi_DAA_VerifySignature.3 \
Tspi_DAA_IssueInit.3 \
Tspi_TPM_DAA_JoinCreateDaaPubKey.3 \
Tspi_DAA_IssuerKeyVerification.3 \
Tspi_TPM_DAA_JoinInit.3 \
Tspi_DAA_IssueSetup.3 \
Tspi_TPM_DAA_JoinStoreCredential.3 \
Tspi_DAA_VerifyInit.3 \
Tspi_TPM_DAA_Sign.3 \
Tspi_TPM_GetAuditDigest.3 \
Tspi_TPM_OwnerGetSRKPubKey.3 \
Tspi_TPM_Quote.3 \
Tspi_TPM_CMKSetRestrictions.3
EXTRA_DIST = $(man3_MANS)

View File

@ -0,0 +1,530 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = man/man3
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
man3dir = $(mandir)/man3
am__installdirs = "$(DESTDIR)$(man3dir)"
NROFF = nroff
MANS = $(man3_MANS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CRYPTOLIB = @CRYPTOLIB@
CRYPTO_PACKAGE = @CRYPTO_PACKAGE@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENSSL_LIB_DIR = @OPENSSL_LIB_DIR@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
RANLIB = @RANLIB@
RPC = @RPC@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
TCSD_DEFAULT_PORT = @TCSD_DEFAULT_PORT@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
man3_MANS = Tspi_ChangeAuth.3 \
Tspi_ChangeAuthAsym.3 \
Tspi_Context_Close.3 \
Tspi_Context_CloseObject.3 \
Tspi_Context_Connect.3 \
Tspi_Context_Create.3 \
Tspi_Context_CreateObject.3 \
Tspi_Context_FreeMemory.3 \
Tspi_Context_GetCapability.3 \
Tspi_Context_GetDefaultPolicy.3 \
Tspi_Context_GetKeyByPublicInfo.3 \
Tspi_Context_GetKeyByUUID.3 \
Tspi_Context_GetRegisteredKeysByUUID.3 \
Tspi_Context_GetRegisteredKeysByUUID2.3 \
Tspi_Context_GetTpmObject.3 \
Tspi_Context_LoadKeyByBlob.3 \
Tspi_Context_LoadKeyByUUID.3 \
Tspi_Context_RegisterKey.3 \
Tspi_Context_UnregisterKey.3 \
Tspi_Data_Bind.3 \
Tspi_Data_Seal.3 \
Tspi_Data_Unbind.3 \
Tspi_Data_Unseal.3 \
Tspi_DecodeBER_TssBlob.3 \
Tspi_EncodeDER_TssBlob.3 \
Tspi_GetAttribData.3 \
Tspi_GetAttribUint32.3 \
Tspi_GetPolicyObject.3 \
Tspi_Hash_GetHashValue.3 \
Tspi_Hash_SetHashValue.3 \
Tspi_Hash_Sign.3 \
Tspi_Hash_UpdateHashValue.3 \
Tspi_Hash_VerifySignature.3 \
Tspi_Key_CertifyKey.3 \
Tspi_Key_ConvertMigrationBlob.3 \
Tspi_Key_CreateKey.3 \
Tspi_Key_CreateMigrationBlob.3 \
Tspi_Key_GetPubKey.3 \
Tspi_Key_LoadKey.3 \
Tspi_Key_UnloadKey.3 \
Tspi_Key_WrapKey.3 \
Tspi_PcrComposite_GetPcrValue.3 \
Tspi_PcrComposite_SelectPcrIndex.3 \
Tspi_PcrComposite_SetPcrValue.3 \
Tspi_Policy_AssignToObject.3 \
Tspi_Policy_FlushSecret.3 \
Tspi_Policy_SetSecret.3 \
Tspi_SetAttribData.3 \
Tspi_SetAttribUint32.3 \
Tspi_TPM_AuthorizeMigrationTicket.3 \
Tspi_TPM_CertifySelfTest.3 \
Tspi_TPM_CheckMaintenancePubKey.3 \
Tspi_TPM_ClearOwner.3 \
Tspi_TPM_CollateIdentityRequest.3 \
Tspi_TPM_CreateEndorsementKey.3 \
Tspi_TPM_CreateMaintenanceArchive.3 \
Tspi_TPM_DirRead.3 \
Tspi_TPM_DirWrite.3 \
Tspi_TPM_GetCapability.3 \
Tspi_TPM_GetEvent.3 \
Tspi_TPM_GetEventLog.3 \
Tspi_TPM_GetEvents.3 \
Tspi_TPM_GetPubEndorsementKey.3 \
Tspi_TPM_GetRandom.3 \
Tspi_TPM_GetStatus.3 \
Tspi_TPM_GetTestResult.3 \
Tspi_TPM_KillMaintenanceFeature.3 \
Tspi_TPM_LoadMaintenancePubKey.3 \
Tspi_TPM_PcrRead.3 \
Tspi_TPM_PcrExtend.3 \
Tspi_TPM_Quote.3 \
Tspi_TPM_SelfTestFull.3 \
Tspi_TPM_SetStatus.3 \
Tspi_TPM_StirRandom.3 \
Tspi_TPM_TakeOwnership.3 \
Tspi_DAA_IssueCredential.3 \
Tspi_DAA_VerifySignature.3 \
Tspi_DAA_IssueInit.3 \
Tspi_TPM_DAA_JoinCreateDaaPubKey.3 \
Tspi_DAA_IssuerKeyVerification.3 \
Tspi_TPM_DAA_JoinInit.3 \
Tspi_DAA_IssueSetup.3 \
Tspi_TPM_DAA_JoinStoreCredential.3 \
Tspi_DAA_VerifyInit.3 \
Tspi_TPM_DAA_Sign.3 \
Tspi_TPM_GetAuditDigest.3 \
Tspi_TPM_OwnerGetSRKPubKey.3 \
Tspi_TPM_Quote.3 \
Tspi_TPM_CMKSetRestrictions.3
EXTRA_DIST = $(man3_MANS)
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/man3/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign man/man3/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-man3: $(man3_MANS)
@$(NORMAL_INSTALL)
test -z "$(man3dir)" || $(MKDIR_P) "$(DESTDIR)$(man3dir)"
@list='$(man3_MANS)'; test -n "$(man3dir)" || exit 0; \
{ for i in $$list; do echo "$$i"; done; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \
done; }
uninstall-man3:
@$(NORMAL_UNINSTALL)
@list='$(man3_MANS)'; test -n "$(man3dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
test -z "$$files" || { \
echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(man3dir)" && rm -f $$files; }
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@list='$(MANS)'; if test -n "$$list"; then \
list=`for p in $$list; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
if test -n "$$list" && \
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
echo " typically \`make maintainer-clean' will remove them" >&2; \
exit 1; \
else :; fi; \
else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(MANS)
installdirs:
for dir in "$(DESTDIR)$(man3dir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-man
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man: install-man3
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-man
uninstall-man: uninstall-man3
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-man3 \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
uninstall uninstall-am uninstall-man uninstall-man3
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,75 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Change_Auth" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_ChangeAuth \- change the authorization data of an entity.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_ChangeAuth(TSS_HOBJECT " hObjectToChange ", TSS_HOBJECT " hParentObject ","
.BI " TSS_HPOLICY " hNewPolicy " );"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_ChangeAuth \fR changes the authorization data (secret) of an entity (object) and assigns the object to the policy object. All classes using secrets provide this method for changing their authorization data.
.SH "PARAMETERS"
.PP
.SS hObjectToChange
Handle of the object to change authorization for.
.PP
.SS hParentObject
Handle of the parent object wrapping the object addressed by hObjectToChange.
.PP
.SS hNewPolicy
Handle of the policy object providing the new authorization data.
.SH "RETURN CODES"
.PP
\fBTspi_ChangeAuth\fR returns TSS_SUCCESS on success,otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhObjectToChange\fR, or \fIhParentObject\fR are not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_ChangeAuth\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_ChangeAuthAsym\fR(3).

View File

@ -0,0 +1,76 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_ChangeAuthAsym" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_ChangeAuthAsym \- change the authorization data of an entity using asymmetric change protocol.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_ChangeAuthAsym(TSS_HOBJECT " hObjectToChange ", TSS_HOBJECT " hParentObject ","
.BI " TSS_HKEY " hIdentKey ", TSS_HPOLICY " hNewPolicy ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_ChangeAuthAsym\fR changes the authorization data (secret) of an entity (object) utilizing the asymmetric change protocol and assigns the object to the policy object. All classes using secrets provide this method for changing their authorization data.
This method changes the authorization data of an object ensuring that the parent of the object does not get knowledge of the new secret.
.SH "PARAMETERS"
.PP
.SS hObjectToChange
Handle of the object the authorization data should be changed.
.PP
.SS hParentObject
Handle of the parent object wrapping the object addressed by \fIhObjectToChange\fR.
.PP
.SS hIdentKey
Handle of the identity key object required to proof the internally created temporary key.
.PP
.SS hNewPolicy
Handle of the policy object providing the new authorization data.
.SH "RETURN CODES"
.PP
\fBTspi_ChangeAuthAsym\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhObjectToChange\fR, \fIhParentObject\fR, or \fIhIdentKey\fR is an invalid handle.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_ChangeAuthAsym\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_ChangeAuth\fR(3).

View File

@ -0,0 +1,68 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_Close" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_Close \- destroy a TSP context handle.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_Close(TSS_HCONTEXT " hLocalContext ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_Close\fR destroys a context by passing in the handle to that context.
.SH "PARAMETERS"
.PP
.SS hLocalContext
The handle to the context to be closed.
.SH "RETURN CODES"
.PP
\fBTspi_Context_Close\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - \fIhLocalContext\fR is an invalid handle.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_Close\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_Create\fR(3), \fBTspi_Context_Connect\fR(3).

View File

@ -0,0 +1,69 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_CloseObject" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_CloseObject \- destroy resources associated with an object handle.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI " TSS_RESULT Tspi_Context_CloseObject(TSS_HCONTEXT " hContext ", TSS_HOBJECT " hObject ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Context_CloseObject\fR destroys the object associated with the object handle. All allocated resources associated within the object are also released.
.SH "PARAMETERS"
.PP
.SS hContext
The handle of the context object.
.PP
.SS hObject
The handle of the object to be destroyed.
.SH "RETURN CODES"
.PP
\fBTspi_Context_CloseObject\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhContext\fR or \fIhObject\fR are invalid handles.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_CloseObject\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_CreateObject\fR(3).

View File

@ -0,0 +1,69 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_Connect" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME.
Tspi_Context_Connect\- connect a TSP to a Core Services daemon
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_Connect(TSS_HCONTEXT " hLocalContext ", UNICODE* " wszDestination ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_Connect\fR creates a connetion between the application and the local or remote TSS System.
.SH "PARAMETERS"
.PP
.SS hLocalContext
The handle to the context to be connected.
.PP
.SS wszDestination
A null terminated unicode string which specifies the local or remote system to which one will be connected. If \fIwszDestination\fR is NULL, the connection will be to a local TCS.
.SH "RETURN CODES"
.PP
\fBTspi_Context_Connect\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - \fIhLocalContext\fR is an invalid handle.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_Connect\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_Create\fR(3), \fBTspi_Context_Close\fR(3).

View File

@ -0,0 +1,66 @@
.\" Copyright (C) 2005 International Business Machines Corporation
.\" Written by Kent Yoder based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_Create" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_Create \- create a TSP context handle.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_Create(TSS_HCONTEXT* " phContext ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_Create\fR creates a handle to a new context object. The context is then used by other API functions to track resources related to it.
.SH "PARAMETERS"
.PP
.SS phContext
Receives the handle to the created context object.
.SH "RETURN CODES"
.PP
\fBTspi_Context_Create\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INTERNAL_ERROR - An internal error occurred in the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_Create\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_Close\fR(3), \fBTspi_Context_Connect\fR(3).

View File

@ -0,0 +1,125 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_CreateObject" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_CreateObject \- create an empty object and return a handle to that object.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_CreateObject(TSS_HCONTEXT " hContext ", TSS_FLAG " objectType ","
.BI " TSS_FLAG " initFlags ", TSS_HOBJECT* " phObject ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Context_CreateObject\fR creates and initializes an empty object of the specified type and returns a handle addressing that object. The object is bound to an already opened context \fIhContext\fR.
.SH "PARAMETERS"
.PP
.SS hContext
The handle of the context object.
.PP
.SS objectType
Flag indicating the object type to create. Possible types are:
.TP
.SM TSS_OBJECT_TYPE_POLICY - a policy object.
.TP
.SM TSS_OBJECT_TYPE_ENCDATA - an encrypted data object (either sealed or bound data).
.TP
.SM TSS_OBJECT_TYPE_RSAKEY - an RSA key.
.TP
.SM TSS_OBJECT_TYPE_PCRS - a PCR composite object.
.TP
.SM TSS_OBJECT_TYPE_HASH - a hash object.
.PP
.SS initFlags
Flag indicating the default attributes of the object. Attributes for each type of object are:
.TP
.SM Policy:
\fBTSS_POLICY_USAGE\fR - a usage policy (for authorization to use an object).
\fBTSS_POLICY_MIGRATION\fR - a migration policy.
.TP
.SM Encrypted data objects:
\fBTSS_ENCDATA_SEAL\fR - A data object used for a Seal operation.
\fBTSS_ENCDATA_BIND\fR - A data object used for a Bind operation.
\fBTSS_ENCDATA_LEGACY\fR - A data object for a bind operation using a legacy key.
.TP
.SM RSA Keys:
\fBTSS_KEY_SIZE_DEFAULT\fR - Use the default key size of the TCS you're connected to.
\fBTSS_KEY_SIZE_512\fR - Create a 512 bit key.
\fBTSS_KEY_SIZE_1024\fR - Create a 1024 bit key.
\fBTSS_KEY_SIZE_2048\fR - Create a 2048 bit key.
\fBTSS_KEY_SIZE_4096\fR - Create a 4096 bit key.
\fBTSS_KEY_SIZE_8192\fR - Create a 8192 bit key.
\fBTSS_KEY_SIZE_16384\fR - Create a 16384 bit key.
\fBTSS_KEY_TYPE_STORAGE\fR - Create a storage key. (Used to wrap other keys).
\fBTSS_KEY_TYPE_SIGNING\fR - Create a signing key.
\fBTSS_KEY_TYPE_BIND\fR - Create a binding key. (Used to encrypt data).
\fBTSS_KEY_TYPE_IDENTITY\fR - Create an identity key. (Used for an identity).
\fBTSS_KEY_TYPE_LEGACY\fR - Create a legacy key. (Can be used for signing and binding, created from data external to a TSS).
\fBTSS_KEY_TYPE_AUTHCHANGE\fR - Create an ephemeral key used to change authorization values.
\fBTSS_KEY_VOLATILE\fR - Create a volatile key. (Must be unloaded at startup).
\fBTSS_KEY_NON_VOLATILE\fR - Create a non-volatile key. (May be unloaded at startup).
\fBTSS_KEY_MIGRATABLE\fR - Create a migratable key.
\fBTSS_KEY_NOT_MIGRATABLE\fR - Create a non-migratable key. [DEFAULT]
\fBTSS_KEY_AUTHORIZATION\fR - Key will require authorization.
\fBTSS_KEY_NO_AUTHORIZATION\fR - Key will not require authorization. [DEFAULT]
\fBTSS_KEY_EMPTY_KEY\fR - Key template which will be returned as an object with very few attributes.
.TP
.SM PCR composite objects:
None.
.TP
.SM Hash objects:
\fBTSS_HASH_SHA1\fR - a hash object of type SHA-1.
\fBTSS_HASH_OTHER\fR - a hash object of type other than SHA-1.
.PP
.PP
.SS phObject
The handle of the object to be created.
.SH "RETURN CODES"
.PP
\fBTspi_Context_CreateObject\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhContext\fR or \fIphObject\fR is an invalid handle.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_CreateObject\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_CloseObject\fR(3).

View File

@ -0,0 +1,81 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_FreeMemory" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_Context_FreeMemory \- Free allocated memory for a given context.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.br
.HP
.BI "TSS_RESULT Tspi_Context_FreeMemory(TSS_HCONTEXT " hContext ", BYTE* " rgbMemory ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_FreeMemory\fR frees memory allocated by the TSS Service Provider on a per-context basis.
This should be used before Tspi_Context_Close is called, to avoid memory leaks.
.SH "PARAMETERS"
.PP
.SS hContext
The \fIhContext\fR parameter is the handle to the local context.
.SS rgbMemory
The \fIrgbMemory\fR parameter is a pointer to the memory block to
be freed. If this is NULL, all memory blocks bound to the context are freed.
.SH "RETURN CODES"
.PP
\fBTspi_Context_FreeMemory\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhContext\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_FreeMemory\fR conforms to the Trusted Computing Group Software
Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_Create\fR(3), \fBTspi_Context_Close\fR(3).

View File

@ -0,0 +1,83 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_GetCapability" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_GetCapability \- provide the capabilites of a TSS Core Service, TSS Service Provider, or TPM.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_GetCapability(TSS_HCONTEXT " hContext ", TSS_FLAG " capArea ","
.BI " UINT32 " ulSubCapLength ", BYTE* " rgbSubCap ","
.BI " UINT32* " pulRespDataLength ", BYTE** " prgbRespData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Context_GetCapability\fR provides the capabilities of the TSS Core Service or TSS Service Provider
.SH "PARAMETERS"
.PP
.SS hContext
The handle of the context object.
.PP
.SS capArea
Flag indicating the attribute to query.
.PP
.SS ulSubCapLength
The length (in bytes) of the rgbSubCap parameter.
.PP
.SS rgbSubCap
Data indicating the attribute to query.
.PP
.SS pulRespDataLength
Recieves the length (in bytes) of the prgbRespData parameter.
.PP
.SS prgbRespData
On successful completion of the command, this parameter points to a buffer containing the actual data of the specified capability.
.SH "RETURN CODES"
.PP
\fBTspi_Context_GetCapability\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - \fIhContext\fR is an invalid handle.
.TP
.SM TSS_E_BAD_PARAMETER - One of the parameters did not match.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_GetCapability\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fB(none)\fR.

View File

@ -0,0 +1,82 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_GetDefaultPolicy" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_Context_GetDefaultPolicy \- Get a handle to the default policy object
of a given context.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.HP
.BI "TSS_RESULT Tspi_Context_GetDefaultPolicy(TSS_HCONTEXT " hContext ", TSS_HPOLICY " *phPolicy "); "
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_GetDefaultPolicy\fR
determines what policy is used by all of the keys in a given context.
.SH "PARAMETERS"
.PP
.SS hContext
The \fIhContext\fR parameter is the handle of the context object.
.SS phPolicy
The \fIphPolicy\fR parameter receives the handle of the default
policy object bound to the context.
.SH "RETURN CODES"
.PP
\fBTspi_Context_GetDefaultPolicy\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhContext\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_GetDefaultPolicy\fR conforms to the Trusted Computing
Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_Create\fR(3), \fBTspi_Context_Connect\fR(3),
\fBTspi_Context_FreeMemory\fR(3), \fBTspi_Context_Close\fR(3).

View File

@ -0,0 +1,81 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_GetKeyByPublicInfo" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_GetKeyByPublicInfo \- search the persistent storage for a registered key using the provided public key information
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_GetKeyByPublicInfo(TSS_HCONTEXT " hContext ", TSS_FLAG " persistentStorageType ","
.BI " TSS_ALGORITHM_ID " algID ", UINT32 " ulPublicInfoLength ","
.BI " BYTE* " rgbPublicInfo ", TSS_HKEY* " phKey ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Context_GetKeyByPublicInfo\fR searches the persistent storage for a registered key using the provided public key information and creates a key object initalized according to the found data. On successful completion of the method a handle to the created new key object is returned.
.SH "PARAMETERS"
.PP
.SS hContext
The handle of the context object.
.PP
.SS persistentStorageType
Flag indicating the persistent storage the key is registered in.
.PP
.SS algId
This parameter indicates the algorithm of the requested key.
.PP
.SS ulPublicInfoLength
The length of the public key info provided at the parameter rgbPublicInfo.
.PP
.SS rgbPublicInfo
The public key info is provided to identify the key to be look for at the persistent storage. In case algID equals to TSS_ALG_RSA this prameter contains the modulus of the public RSA key.
.PP
.SS hKey
Recieves the handle of the key object representing the key. In case the key hasn't been found, this value will be NULL.
.SH "RETURN CODES"
.PP
\fBTspi_Context_GetKeyByPublicInfo\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - \fIhContext\fR is an invalid handle.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_GetKeyByPublicInfo\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_LoadKeyByUUID\fR(3).

View File

@ -0,0 +1,98 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_GetKeyByUUID" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_Context_GetKeyByUUID \- get a handle to a key registered in persistent storage.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_GetKeyByUUID(TSS_HCONTEXT " hContext ", TSS_FLAG " persistentStorageType ","
.BI " TSS_UUID " uuidData ", TSS_HKEY* " phKey ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_GetKeyByUUID\fR searches the Persistent Storage database for a registered key using the
given UUID. It then creates a key object initialized to the found data and
returns a handle to the key object.
.SH "PARAMETERS"
.PP
.SS hContext
The \fIhContext\fR parameter is the handle of the context object.
.SS persistentStorageType
The \fIpersistentStorageType\fR parameter indicates the persistent
storage the key is registered in.
.SS uuidData
The \fIuuidData\fR parameter is the UUID by which the key is registered in
persistent storage.
.SS phKey
The \fIphKey\fR parameter receives the handle of the key object representing
the key.
.SH "RETURN CODES"
.PP
\fBTspi_Context_GetKeyByUUID\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhContext\fR is an invalid handle.
.TP
.SM TSS_E_PS_KEY_NOTFOUND
The key cannot be found in the persistent storage database.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_GetKeyByUUID\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_GetTpmObject\fR(3), \fBTspi_Context_LoadKeyByUUID\fR(3),
\fBTspi_Context_GetRegisteredKeysByUUID\fR(3),
\fBTspi_Context_GetKeyByPublicInfo\fR(3).

View File

@ -0,0 +1,81 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_GetRegisteredKeysByUUID" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_GetRegisteredKeysByUUID \- get an array of TSS_KM_KEYINFO structures based on the state of persistent storage.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_GetRegisteredKeysByUUID(TSS_HCONTEXT " hContext ", TSS_FLAG " persistentStorageType ","
.BI " TSS_UUID* " pUuidData ", UINT32* " pulKeyHierarchySize ","
.BI " TSS_KM_KEYINFO** " ppKeyHierarchy ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Context_GetRegisteredKeysByUUID\fR gets an array of TSS_KM_KEYINFO structures. This information reflects the state of the registered key hierarchy. The keys stored in the persistent storage are totallly independent from either the context provided in the function call or the context, which was provided while processing the key registration.
.SH "PARAMETERS"
.PP
.SS hContext
The handle of the context object.
.PP
.SS persistentStorageType
Flag indicating the persistent storage the key is registered in.
.PP
.SS pUuidData
The UUID the key was registered in the persistent storage (TSP or connected TCS). If no key UUID is provided, thus KeyUUID is NULL, the returned array of the TSS_KM_KEYINFO structure contins data reflecting the whole key hierarchy starting with root key. If a certain key is UUID is provided, the returned array of TSS_KM_KEYINFO structures only contains data reflecting the path of the key hierarchy regarding that key. The first array entry is the key addressed by the given UUID followed by its parent key up to the root key.
.PP
.SS pulKeyHierarchySize
Recieves the length (number of array entries) of the ppKeyHierarchy parameter.
.PP
.SS ppKeyHierarchy
On successful completion of the command, this parameter points to a buffer containing the actual key hierarchy data.
.SH "RETURN CODES"
.PP
\fBTspi_Context_GetRegisteredKeysByUUID\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - \fIhContext\fR is an invalid handle.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_GetRegisteredKeysByUUID\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_LoadKeyByUUID\fR(3).

View File

@ -0,0 +1,82 @@
.\" Copyright (C) 2004,2007 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\" Revised by Ramon Brandão based on Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_GetRegisteredKeysByUUID2" 3 "2007-07-06" "TSS 1.2" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_GetRegisteredKeysByUUID2 \- get an array of TSS_KM_KEYINFO2 structures based on the state of persistent storage.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_GetRegisteredKeysByUUID2(TSS_HCONTEXT " hContext ", TSS_FLAG " persistentStorageType ","
.BI " TSS_UUID* " pUuidData ", UINT32* " pulKeyHierarchySize ","
.BI " TSS_KM_KEYINFO2** " ppKeyHierarchy ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Context_GetRegisteredKeysByUUID2\fR gets an array of TSS_KM_KEYINFO2 structures. This information reflects the state of the registered key hierarchy. The keys stored in the persistent storage are totallly independent from either the context provided in the function call or the context, which was provided while processing the key registration.
.SH "PARAMETERS"
.PP
.SS hContext
The handle of the context object.
.PP
.SS persistentStorageType
Flag indicating the persistent storage the key is registered in.
.PP
.SS pUuidData
The UUID the key was registered in the persistent storage (TSP or connected TCS). If no key UUID is provided, thus KeyUUID is NULL, the returned array of the TSS_KM_KEYINFO2 structure contains data reflecting the whole key hierarchy starting with root key. If a certain key is UUID is provided, the returned array of TSS_KM_KEYINFO2 structures only contains data reflecting the path of the key hierarchy regarding that key. The first array entry is the key addressed by the given UUID followed by its parent key up to the root key.
.PP
.SS pulKeyHierarchySize
Recieves the length (number of array entries) of the ppKeyHierarchy parameter.
.PP
.SS ppKeyHierarchy
On successful completion of the command, this parameter points to a buffer containing the actual key hierarchy data.
.SH "RETURN CODES"
.PP
\fBTspi_Context_GetRegisteredKeysByUUID2\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - \fIhContext\fR is an invalid handle.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_GetRegisteredKeysByUUID2\fR conforms to the Trusted Computing Group Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_Context_LoadKeyByUUID\fR(3).

View File

@ -0,0 +1,86 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_GetTpmObject" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Context_GetTpmObject \- get the handle of the TPM object associated with a context.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.br
.HP
.BI "TSS_RESULT Tspi_Context_GetTpmObject(TSS_HCONTEXT " hContext ", TSS_HTPM* " phTPM "); "
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_GetTpmObject\fR retrieves the TPM object of a context. Only one instance of this
object exists for a given context and implicitly represents a TPM owner. This function is normally called at the beginning of a program, right after the context is established. You must have a context established prior to calling this function.
.SH "PARAMETERS"
.PP
.SS hContext
The \fIhContext\fR parameter is the handle of the context object
(already existing).
.SS phTPM
The \fIphTPM\fR parameter is a pointer to where the handle of the
TPM will be placed.
.SH "RETURN CODES"
.PP
\fBTspi_Context_GetTpmObject\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhContext\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more of the parameters is incorrect.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_GetTpmObject\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_Create\fR(3), \fBTspi_Context_Connect\fR(3), \fBTspi_Context_FreeMemory\fR(3), \fBTspi_Context_Close\fR(3).

View File

@ -0,0 +1,98 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_LoadKeyByBlob" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_Context_LoadKeyByBlob \- load a key into the TPM using the key's blob.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_LoadKeyByBlob(TSS_HCONTEXT " hContext ", TSS_HKEY " hUnwrappingKey ","
.BI " UINT32 " ulBlobLength ", BYTE* " rgbBlobData ","
.BI " TSS_HKEY* " phKey "); "
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_LoadKeyByBlob\fR
creates a key based on the information gotten by the key blob. It then
loads the key into the TPM, which unwraps the key blob by using the key
associated with \fIhUnwrappingKey\fR. The key blob addressed by
\fihUnwrappingKey\fR must have been already loaded into the TPM. This
function returns a handle to the created key object.
.SH "PARAMETERS"
.PP
.SS hContext
The \fIhContext\fR parameter is the handle of the context object.
.SS hUnwrappingKey
The \fIhUnwrappingKey\fR parameter is the handle of the key object
which should be used to unwrap the key information associated with
\fIrgbBlobData\fR.
.SS rgbBlobData
The \fIrgbBlobData\fR parameter is the wrapped key to load.
.SS phKey
The \fIphKey\fR parameter receives the handle of the key object
representing the loaded key.
.SH "RETURN CODES"
.PP
\fBTspi_Context_LoadKeyByBlob\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhContext\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_LoadKeyByBlob\fR conforms to the Trusted Computing
Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_LoadKeyByUUID\fR(3), \fBTspi_Policy_SetSecret\fR(3),
\fBTspi_GetPolicyObject\fR(3), \fBTspi_Key_CreateKey\fR(3),
\fBTspi_GetAttribUint32\fR(3).

View File

@ -0,0 +1,78 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_LoadKeyByUUID" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_LoadKeyByUUID \- load a key that's been registered in persistent storage.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_LoadKeyByUUID(TSS_HCONTEXT " hContext ", TSS_FLAG " persistentStorageType ", "
.BI " TSS_UUID " uuidData ", TSS_HKEY* " phKey ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Context_LoadKeyByUUID\fR
creates a key object based on the information got from the manager using the UUID and loads the key into the TPM. The persistent storage provides all information to load the parent keys required to load the key associated with the given UUID.
.SH "PARAMETERS"
.PP
.SS hContext
The handle of the context object.
.PP
.SS persistentStorageType
Flag indicating the persistent storage the key is registered in. Should be either TSS_PS_TYPE_USER ot TSS_PS_TYPE_SYSTEM.
.PP
.SS uuidData
The UUID of the key by which the key was registered in the persistent storage (TSP or connected TCS).
.PP
.SS phKey
Receives the handle of the key object representing the loaded key.
.SH "RETURN CODES"
.PP
\fBTspi_Context_LoadKeyByUUID\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - \fIhContext\fR is an invalid handle.
.TP
.SM TSS_E_BAD_PARAMETER - \fIpersistentStorageType\fR is not valid.
.TP
.SM TSS_E_INTERNAL_ERROR
An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Context_LoadKeyByUUID\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_LoadKeyByBlob(3)\fR, \fBTspi_Key_LoadKey(3)\fR.

View File

@ -0,0 +1,170 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_RegisterKey" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_Context_RegisterKey \- register a key in the TSS Persistent Storage database
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_RegisterKey(TSS_HCONTEXT " hContext ", TSS_HKEY " hKey ","
.BI " TSS_FLAG " persistentStorageType ", TSS_UUID " uuidKey ","
.BI " TSS_FLAG " persistentStorageTypeParent ", TSS_UUID " uuidParentKey "); "
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Context_RegisterKey\fR is the API that
registers a key with the TSS Persistent Storage database so that it
can be loaded as necessary. It also includes all information required
for loading the key, as well as information about its parent key.
.SH "PARAMETERS"
.PP
.SS hContext
The \fIhContext\fR parameter is the handle of the context object.
.SS hKey
The \fIhKey\fR parameter is the handle of the key object addressing the key
to be registered.
.SS persistentStorageType
The \fIpersistentStorageType\fR parameter indicates the persistent
storage the key is registered in.
.SS uuidKey
The \fIuuidKey\fR parameter is the UUID by which the key is registered in
persistent storage.
.SS persistentStorageTypeParent
The \fIpersistentStorageTypeParent\fR parameter indicates the persistent storage
that the parent key is registered in.
.SS uuidParentKey
The \fIuuidParentKey\fR parameter is the UUID by which the parent key is
registered in persistent storage.
.SH "RETURN CODES"
.PP
\fBTspi_Context_RegisterKey\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhContext\fR is not a valid handle.
.TP
.SM TSS_E_PS_KEY_NOTFOUND
The key cannot be found in the persistent storage database.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "EXAMPLE"
.nf
#include <trousers/tss.h>
int
main(void)
{
TSS_FLAGS initFlags = ...;
TSS_HKEY hKey, hSRK;
TSS_UUID keyUUID = {...};
// Create a TSP handle
result = Tspi_Context_Create(&hContext);
if (result != TSS_SUCCESS)
Error_Path();
// Connect to the TCSD
result = Tspi_Context_Connect(hContext, GLOBALSERVER);
if (result != TSS_SUCCESS)
Error_Path();
// Create the Key Object
result = Tspi_Context_CreateObject(hContext,
TSS_OBJECT_TYPE_RSAKEY,
initFlags, &hKey);
if (result != TSS_SUCCESS)
Error_Path();
// Load parent Key by UUID
result = Tspi_Context_LoadKeyByUUID(hContext, TSS_PS_TYPE_SYSTEM,
SRK_UUID, &hSRK);
if (result != TSS_SUCCESS)
Error_Path();
// Do policy/secret handling here
result = Tspi_Key_CreateKey(hKey, hSRK, 0);
if (result != TSS_SUCCESS)
Error_Path();
// Register the Key in System PS (on the TCSD's platform)
result = Tspi_Context_RegisterKey(hContext, hKey, TSS_PS_TYPE_SYSTEM,
keyUUID, TSS_PS_TYPE_SYSTEM,
SRK_UUID);
if (result != TSS_SUCCESS)
Error_Path();
/* ...
*
* Use the key as needed, exiting the program if necessary, reloading
* the key using Tspi_Context_LoadKeyByUUID() after each restart. Once
* the key is no longer useful, unregister it from system PS as part
* of clean up.
*/
// Unregister the Key
result = Tspi_Context_UnregisterKey(hContext, TSS_PS_TYPE_SYSTEM,
migratableSignUUID, &hKey);
if (result != TSS_SUCCESS)
Error_Path();
// exit, discarding hKey
}
.fi
.SH "CONFORMING TO"
.PP
\fBTspi_Context_RegisterKey\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_UnregisterKey\fR(3), \fBTspi_Context_LoadKeyByUUID\fR(3),
\fBTspi_Context_GetRegisteredKeyByUUID\fR(3).

View File

@ -0,0 +1,150 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Context_UnregisterKey" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Context_UnregisterKey \- unregister a key from the persistent storage device.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Context_UnregisterKey(TSS_HCONTEXT " hContext ", TSS_FLAG " persistentStorageType ","
.BI " TSS_UUID " uuidKey ", TSS_HKEY* " phKey ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Context_UnregisterKey\fR
provides the capabilities of the TSS Core Service or TSS Service Provider
.SH "PARAMETERS"
.PP
.SS hContext
The handle of the context object.
.PP
.SS persistentStorageType
Flag indicating the persistent storage.
.PP
.SS uuidKey
The UUID of the key to be removed from the persistent storage.
.PP
.SS phKey
Recieves the handle of a key object containing the information from the archive.
.PP
.SS pulRespDataLength
Recieves the length (in bytes) of the prgbRespData parameter.
.PP
.SS prgbRespData
On successful completion of the command, this parameter points to the buffer containing the actual data of the specified capability.
The handle of the object to be destroyed
.SH "RETURN CODES"
.PP
\fBTspi_Context_UnregisterKey\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - the parameter \fIhContext\fR is an invalid parameter.
.TP
.SM TSS_E_PS_KEY_NOTFOUND - the parameter \fIuuidKey\fR is an invalid UUID.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "EXAMPLE"
.nf
#include <trousers/tss.h>
int
main(void)
{
TSS_FLAGS initFlags = ...;
TSS_HKEY hKey, hSRK;
TSS_UUID keyUUID = {...};
// Create a TSP handle
result = Tspi_Context_Create(&hContext);
if (result != TSS_SUCCESS)
Error_Path();
// Connect to the TCSD
result = Tspi_Context_Connect(hContext, GLOBALSERVER);
if (result != TSS_SUCCESS)
Error_Path();
// Create the Key Object
result = Tspi_Context_CreateObject(hContext,
TSS_OBJECT_TYPE_RSAKEY,
initFlags, &hKey);
if (result != TSS_SUCCESS)
Error_Path();
// Load parent Key by UUID
result = Tspi_Context_LoadKeyByUUID(hContext, TSS_PS_TYPE_SYSTEM,
SRK_UUID, &hSRK);
if (result != TSS_SUCCESS)
Error_Path();
// Do policy/secret handling here
result = Tspi_Key_CreateKey(hKey, hSRK, 0);
if (result != TSS_SUCCESS)
Error_Path();
// Register the Key in System PS (on the TCSD's platform)
result = Tspi_Context_RegisterKey(hContext, hKey, TSS_PS_TYPE_SYSTEM,
keyUUID, TSS_PS_TYPE_SYSTEM,
SRK_UUID);
if (result != TSS_SUCCESS)
Error_Path();
/* ...
*
* Use the key as needed, exiting the program if necessary, reloading
* the key using Tspi_Context_LoadKeyByUUID() after each restart. Once
* the key is no longer useful, unregister it from system PS as part
* of clean up.
*/
// Unregister the Key
result = Tspi_Context_UnregisterKey(hContext, TSS_PS_TYPE_SYSTEM,
migratableSignUUID, &hKey);
if (result != TSS_SUCCESS)
Error_Path();
// exit, discarding hKey
}
.fi
.SH "CONFORMING TO"
.PP
\fBTspi_Context_UnregisterKey\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_CreateKey\fR(3), \fBTspi_Context_RegisterKey\fR(3).

View File

@ -0,0 +1,103 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_DAA_IssueCredential" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_DAA_IssueCredential \- issue a DAA credential for a TCG platform
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSPICALL Tspi_DAA_IssueCredential("
.BI " TSS_HDAA " hDAA ","
.BI " UINT32 " attributesIssuerLength ","
.BI " BYTE** " attributesIssuer ","
.BI " TSS_DAA_CREDENTIAL_REQUEST " credentialRequest ","
.BI " TSS_DAA_JOIN_ISSUER_SESSION " joinSession ","
.BI " TSS_DAA_CRED_ISSUER* " credIssuer
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_DAA_IssueCredential\fR
is part of the DAA Issuer component. It's the last function out of 2 in order to issue a DAA
Credential for a TCG Platform. It detects rogue TPM according to published rogue TPM DAA keys.
This is an optional function and does not require a TPM or a TCS.
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS attributesIssuerLength
The \fIattributesIssuerLength\fR parameter is the length of the attributesIssuer array, which is
determined by the DAA Issuer public key (li). The length of a single attribute is if/8.
.SS attributesIssuer
The \fIattributesIssuer\fR parameter is the array of attributes to be encoded into the DAA Credential
visible to the DAA Issuer .
.SS credentialRequest
The \fIcredentialRequest\fR parameter is the credential request of the Platform, it contains the
blinded DAA public key of the platform on which the DAA Issuer will issue the credential the
blinded attributes chosen by the Platform.
.SS joinSession
The \fIjoinSession\fR parameter is the structure containing the DAA Join session information.
.SS credIssuer
The \fIcredIssuer\fR parameter is the structure containing the DAA Credential issued by the DAA
Issuer, the proof of correctness of the credential and the attributes chosen by the DAA Issuer.
.SH "RETURN CODES"
.PP
\fBTspi_DAA_IssueCredential\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_DAA_AUTHENTICATION_ERROR
The authentication proof of the TPM is incorrect.
.TP
.SM TSS_E_DAA_PSEUDONYM_ERROR
The TPM is rogue.
.TP
.SM TSS_E_DAA_CREDENTIAL_REQUEST_PROOF_ERROR
The proof of the credential request is incorrect.
.SH "CONFORMING TO"
.PP
\fBTspi_DAA_IssueCredential\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_DAA_IssuerKeyVerification\fR(3)

View File

@ -0,0 +1,113 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_DAA_IssueInit" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_DAA_IssueInit \- initialize the Issuer for a join operation
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSPICALL Tspi_DAA_IssueInit("
.BI " TSS_HDAA " hDAA ","
.BI " TSS_HKEY " issuerAuthPK ","
.BI " TSS_HKEY " issuerKeyPair ","
.BI " TSS_DAA_IDENTITY_PROOF " identityProof ","
.BI " UINT32 " capitalUprimeLength ","
.BI " BYTE* " capitalUprime ","
.BI " UINT32 " daaCounter ","
.BI " UINT32* " nonceIssuerLength ","
.BI " BYTE** " nonceIssuer ","
.BI " UINT32* " authenticationChallengeLength ","
.BI " BYTE** " authenticationChallenge ","
.BI " TSS_DAA_JOIN_ISSUER_SESSION* " joinSession
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_DAA_IssueInit\fR
is a function that is part of the DAA Issuer component. It's the first function out of 2 in order
to issue a DAA Credential for a TCG Platform. It assumes that the endorsement key and its associated
credentials are from a genuine and valid TPM. (Verification of the credentials is a process defined
by the TCG Infrastructure WG.)
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS issuerAuthPK
The \fIissuerAuthPKh\fR parameter is the root authentication (public) key of DAA Issuer.
.SS issuerKeyPair
The \fIissuerKeyPair\fR parameter is the handle of the main DAA Issuer key pair (private and public portion).
.SS identityProof
The \fIidentityProof\fR parameter is the structure containing endorsement, platform and conformance
credential of the TPM requesting the DAA Credential.
.SS capitalUprimeLength
The \fIcapitalUprimeLength\fR parameter is the length of capitalUprime which is .
.SS capitalUprime
The \fIcapitalUprime\fR parameter is U'.
.SS daaCounter
The \fIdaaCounter\fR parameter is the DAA counter.
.SS nonceIssuerLength
The \fInonceIssuerLength\fR parameter is the length of nonceIssuer (20 bytes).
.SS nonceIssuer
The \fInonceIssuer\fR parameter is the nonce of the DAA Issuer.
.SS authenticationChallengeLength
The \fIauthenticationChallengeLength\fR parameter is the length of authenticationChallenge
(256 bytes - DAA_SIZE_NE1).
.SS authenticationChallenge
The \fIauthenticationChallenge\fR parameter is the second nonce of the DAA Issuer that is
encrypted by the endorsement public key. It is used as a challenge to authenticate the TPM.
.SS joinSession
The \fIjoinSession\fR parameter is the structure containing the DAA Join session information.
.SH "RETURN CODES"
.PP
\fBTspi_DAA_IssueInit\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either the DAA is not valid.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_DAA_IssueInit\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_DAA_IssuerKeyVerification\fR(3)

View File

@ -0,0 +1,100 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_DAA_IssueSetup" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_DAA_IssueSetup \- generate a DAA Issuer public and private key
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSPICALL Tspi_DAA_IssueSetup("
.BI " TSS_HDAA " hDAA ","
.BI " UINT32 " issuerBaseNameLength ","
.BI " BYTE* " issuerBaseName ","
.BI " UINT32 " numberPlatformAttributes ","
.BI " UINT32 " numberIssuerAttributes ","
.BI " TSS_HKEY* " keyPair ","
.BI " TSS_DAA_PK_PROOF** " identity_proof
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_DAA_IssueSetup\fR
is part of the DAA Issuer component. It defines the generation of a DAA Issuer
public and secret key. Further it defines the generation of a non-interactive proof (using
the Fiat-Shamir heuristic) that the public keys were chosen correctly. The latter will guarantee
the security requirements of the platform (respectively, its user), i.e., that the privacy and
anonymity of signatures will hold.
The generation of the authentication keys of the DAA Issuer, which are used to authenticate
(main) DAA Issuer keys, is not defined by this function.
This is an optional function and does not require a TPM or a TCS.
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS issuerBaseNameLength
The \fIissuerBaseNameLength\fR parameter is the length of the issuerBaseName.
.SS issuerBaseName
The \fIissuerBaseName\fR parameter is the unique name of the DAA Issuer.
.SS numberPlatformAttributes
The \fInumberPlatformAttributes\fR parameter is the number of attributes that the Platform can choose and which will not be visible to the Issuer.
.SS numberIssuerAttributes
The \fInumberIssuerAttributes\fR parameter is number of attributes that the Issuer can choose and which will be visible to both the Platform and the Issuer.
.SS keyPair
The \fIkeyPair\fR parameter is the handle of the main DAA Issuer key pair (private and public portion).
.SS publicKeyProof
The \fIpublicKeyProof\fR parameter is the Handle of the proof of the main DAA Issuer public key.
.SH "RETURN CODES"
.PP
\fBTspi_DAA_IssueSetup\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either the DAA is not valid.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_DAA_IssueSetup\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_DAA_IssuerKeyVerification\fR(3)

View File

@ -0,0 +1,87 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_DAA_IssuerKeyVerification" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_DAA_IssuerKeyVerification \- verifies the DAA public key
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSPICALL Tspi_DAA_IssuerKeyVerification("
.BI " TSS_HDAA " hDAA ","
.BI " TSS_HKEY " issuerPk ","
.BI " TSS_DAA_PK_PROOF* " issuerPkProof ","
.BI " TSS_BOOL* " isCorrect
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_DAA_IssuerKeyVerification\fR
verifies the DAA public key of a DAA Issuer with respect to its associated proof.
This is a resource consuming task. It can be done by trusted third party (certification).
This is an optional function and does not require a TPM or a TCS.
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS issuerPk
The \fIissuerPk\fR parameter is a DAA Issuer public key.
.SS issuerPkProof
The \fIissuerPkProof\fR parameter is a structure representing the proofs of the correctness of the DAA Issuer public key.
.SS isCorrect
The \fIisCorrect\fR parameter is the return corectness of the proof.
.SH "RETURN CODES"
.PP
\fBTspi_DAA_IssuerKeyVerification\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either the DAA is not valid.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_DAA_IssuerKeyVerification\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_DAA_IssueSetup\fR(3)

View File

@ -0,0 +1,86 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_DAA_VerifyInit" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_DAA_VerifyInit \- creates a challenge for the TCG platform
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSPICALL Tspi_DAA_VerifyInit("
.BI " TSS_HDAA " hDAA ","
.BI " UINT32* " nonceVerifierLength ","
.BI " BYTE** " nonceVerifier ","
.BI " UINT32* " baseNameLength ","
.BI " BYTE** " baseName
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_DAA_VerifyInit\fR
is part of the DAA Verifier component. It's the first function out of 2 in order to verify
a DAA Credential of a TCG platform. It creates a challenge for the TCG platform.
This is an optional function and does not require a TPM or a TCS.
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS nonceVerifierLength
The \fInonceVerifierLength\fR parameter is the length of the nonceVerifier.
.SS nonceVerifier
The \fInonceVerifier\fR parameter is the challenge for the platform.
.SS baseNameLength
The \fIbaseNameLength\fR parameter is the length of the baseName.
.SS baseName
The \fIbaseName\fR parameter is the base name that was chosen for the DAA Signature.
.SH "RETURN CODES"
.PP
\fBTspi_DAA_VerifyInit\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SH "CONFORMING TO"
.PP
\fBTspi_DAA_VerifyInit\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_DAA_IssuerKeyVerification\fR(3)

View File

@ -0,0 +1,107 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_DAA_VerifySignature" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_DAA_VerifySignature \- creates a challenge for the TCG platform
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSPICALL Tspi_DAA_VerifySignature("
.BI " TSS_HDAA " hDAA ","
.BI " TSS_DAA_SIGNATURE " daaSignature ","
.BI " TSS_HKEY " hPubKeyIssuer ","
.BI " TSS_DAA_SIGN_DATA " signData ","
.BI " UINT32 " attributesLength ","
.BI " BYTE** " attributes ","
.BI " UINT32 " nonceVerifierLength ","
.BI " BYTE* " nonceVerifier ","
.BI " UINT32 " baseNameLength ","
.BI " BYTE* " baseName ","
.BI " TSS_BOOL* " isCorrect
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_DAA_VerifySignature\fR
is part of the DAA Verifier component. It's the last function out of 2 in order to verify a
DAA Credential of a TCG platform. It verifies the DAA Credential and detects public rogue TPMs.
This is an optional function and does not require a TPM or a TCS.
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS daaSignature
The \fIdaaSignature\fR parameter is the DAA signature contains proof of
ownership of the DAA Credential, as well as a signature on either an AIK or a message.
.SS hPubKeyIssuer
The \fIhPubKeyIssuer\fR parameter is the handle of the DAA public key of the DAA Issuer
of the credential.
.SS signData
The \fIsignData\fR parameter defines what data is signed (AIK or message).
.SS attributesLength
The \fIattributesLength\fR parameter is the Length of attributes array that is determined by
the DAA Issuer public key (lh+li). The length of a single attribute is lf/8.
.SS attributes
The \fIattributes\fR parameter is the array of attributes which the DAA Credential owner reveals.
.SS nonceVerifierLength
The \fInonceVerifierLength\fR parameter is the length of nonceVerifier (20 bytes).
.SS nonceVerifier
The \fInonceVerifier\fR parameter is the nonce that was computed in the previous function (Tspi_VerifyInit).
.SS baseNameLength
The \fIbaseNameLength\fR parameter the length of the baseName.
.SS baseName
The \fIbaseName\fR parameter is the base name that was chosen for the DAA Signature.
.SS isCorrect
The \fIisCorrect\fR parameter denotes if the verification of the DAA Signature was successful.
.SH "RETURN CODES"
.PP
\fBTspi_DAA_VerifySignature\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SH "CONFORMING TO"
.PP
\fBTspi_DAA_VerifySignature\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_DAA_IssuerKeyVerification\fR(3)

View File

@ -0,0 +1,116 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Data_Bind" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Data_Bind \- Encrypts a data blob
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Data_Bind(TSS_HENCDATA " hEncData ", TSS_HKEY " hEncKey ","
.BI " UINT32 " ulDataLength ", BYTE* " rgbDataToBind ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Data_Bind\fR encrypts a data blob in a manner
that is decryptable by \fBTspi_Data_Unbind\fR. The data blob is
encrypted using a public key operation with the key addressed by the
given encryption key object. To bind data that is larger than the RSA
public key modulus is the responsibility of the caller to perform the
blocking and subsequent combination of data. The bound data blob is
stored in the data object addressed by \fIhEncData\fR and can be
exported from the object by \fBTspi_GetAttribData\fR. The caller of
this function should perform validations that the public key presented
to it is from a valid TPM.
.SH "PARAMETERS"
.PP
.SS hEncData
The handle of the data object which contains the encrypted data on
successful completion of the command.
.SS hEncKey
Handle to the key object addressing the public key which is used
to encrypt the data.
.SS ulDataLength
Indicates the length of the data provided at the parameter \fIrgbDataToBind\fR.
.SS rgbDataToBind
A pointer to the data to be encrypted.
.SH "RETURN CODES"
.PP
\fBTspi_Data_Bind\fR returns TSS_SUCCESS on success, otherwise one of
the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhHash\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.TP
.SM TSS_E_INVALID_ENCSCHEME
Invalid encryption scheme.
.TP
.SM TSS_E_ENC_INVALID_LENGTH
Invalid length of data to be encypted.
.TP
.SM TSS_E_ENC_NO_DATA
No data to encrypt.
.TP
.SM TSS_E_ENC_INVALID_TYPE
Invalid encryption type.
.SH "CONFORMING TO"
.PP
\fBTspi_Data_Bind\fR conforms to the Trusted Computing Group Software
Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Data_Unbind\fR(3), \fBTspi_Data_Unseal\fR(3),
\fBTspi_Data_Seal\fR(3).

View File

@ -0,0 +1,83 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Data_Seal" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Data_Seal \- encrypt a data blob in a mannar that is only decryptable by Tspi_Data_Unseal on the same system.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Data_Seal(TSS_HENCDATA " hEncData ", TSS_HKEY " hEncKey ","
.BI " UINT32 " ulDataLength ", BYTE* " rgbDataToSeal ","
.BI " TSS_HPCRS " hPcrComposite ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Data_Seal\fR encrypts a data blob in a mannar that is only decryptable by Tspi_Data_Unseal on the same system. The data blob is encrypted using a public key operation with the nonmigratable key addressed by the given encryption key object.
.SH "PARAMETERS"
.PP
.SS hEncData
Handle of the data object which contains the sealed data on successful completion of the command.
.PP
.SS hEncKey
Handle to the key object addressing the nonmigratable key which is used to encrypt the data.
.PP
.SS ulDataLength
The Length (in bytes) of the rgbDataToSeal parameter.
.PP
.SS rgbDataToSeal
Pointer to memory containing the data to be encrypted.
.PP
.SS hPcrComposite
Handle of the PCR Composite object specifying the PCRs which are part of the sealed data blob. Set to NULL, if the encrypted data should only be bound to the system and PCRs are not of interest.
.SH "RETURN CODES"
.PP
\fBTspi_Data_Seal\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - One of the following parameters \fIhEncData\fR, \fIhEncKey\fR, \fIrgbDataToSeal\fR is invalid.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Data_Seal\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Data_Unseal\fR(3).

View File

@ -0,0 +1,109 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Data_Unbind" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Data_Unbind \- Decrypts data that has been bound to a key
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Data_Unbind(TSS_HENCDATA " hEncData ", TSS_HKEY " hEncKey ","
.BI " UINT32* " pulUnboundDataLength ", BYTE** " prgbUnboundData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Data_Unbind\fR decrypts the encrypted data
blob exportedfrom the data object used in \fBTspi_Data_Bind\fR. The
encrypted data blob must be imported to the object addressed by
\fBTspi_SetAttribData\fR before calling this method.
.SH "PARAMETERS"
.PP
.SS hEncData
The handle of the data object which contains the encrypted data.
.SS hEncKey
Handle to the key object addressing the private key which is used
to decrypt the data.
.SS pulDataLength
Receives the length of the data at the parameter \fIprgbUnboundData\fR.
.SS prgbUnboundData
Receives a pointer to a buffer containing the plaintext data.
.SH "RETURN CODES"
.PP
\fBTspi_Data_Unbind\fR returns TSS_SUCCESS on success, otherwise one
of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhEncData\fR or \fIhEncKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.TP
.SM TSS_E_INVALID_ENCSCHEME
Invalid encryption scheme.
.TP
.SM TSS_E_ENC_INVALID_LENGTH
Invalid length of data to be encypted.
.TP
.SM TSS_E_ENC_NO_DATA
No data to encrypt.
.TP
.SM TSS_E_ENC_INVALID_TYPE
Invalid encryption type.
.SH "CONFORMING TO"
.PP
\fBTspi_Data_Unbind\fR conforms to the Trusted Computing Group Software
Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Data_Bind\fR(3), \fBTspi_Data_Unseal\fR(3),
\fBTspi_Data_Seal\fR(3).

View File

@ -0,0 +1,81 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Data_Unseal" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Data_Unseal \- dencrypt data encrypted by Tspi_Data_Seal() only if it was encrypted on the same platform and under the current configuration.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Data_Unseal(TSS_HENCDATA " hEncData ", TSS_HKEY " hKey ","
.BI " UINT32 " pulUnsealedDataLength ", BYTE** " prgbUnsealedData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Data_Unseal\fR reveals data encrypted by the Tspi_Data_Seal only if it was encrypted on the same platform and the current configuration. This is internally proofed and guaranteed by the TPM.
.SH "PARAMETERS"
.PP
.SS hEncData
Handle of the data object which contains the sealed data.
.PP
.SS hKey
Handle to the key object addressing the nonmigratable key which is used to decrypt the data.
.PP
.SS pulUnsealedDataLength
The length (in bytes) of the prgbUnsealedData parameter.
.PP
.SS prgbUnsealedData
On successful completion of the command, this parameter points to a buffer containing the plaintext data.
.PP
.SS hPcrComposite
Handle of the PCR Composite object specifying the PCRs which are part of the sealed data blob. Set to NULL, if the encrypted data should only be bound to the system and PCRs are not of interest.
.SH "RETURN CODES"
.PP
\fBTspi_Data_Unseal\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fBhEncData\fR or \fBhKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Data_Unseal\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Data_Seal\fR(3).

View File

@ -0,0 +1,77 @@
.\" Copyright (C) 2007 International Business Machines Corporation
.\" Written by Tom Lendacky based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_DecodeBER_TssBlob" 3 "2007-06-12" "TSS 1.2" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_DecodeBER_TssBlob \- unwraps a BER-encoded TSS blob.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_DecodeBER_TssBlob(UINT32 " berBlobSize ", BYTE* " berBlob ","
.BI " UINT32* " blobType ", UINT32* " rawBlobSize ","
.BI " BYTE* " rawBlob ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_DecodeBER_TssBlob\fR is used to unwrap a BER-encoded blob in accordance with the ASN.1 data definitions in the Portable Data section of the Trusted Computing Group Software Stack Specification Version 1.2.
.SH "PARAMETERS"
.PP
.SS berBlobSize
Size of the BER-encoded blob.
.PP
.SS berBlob
Pointer to the BER-encoded blob.
.PP
.SS blobType
Pointer to the type of blob being unwrapped (refer to the TSS_BLOB_TYPE_* constants).
.PP
.SS rawBlobSize
Pointer to the size of the rawBlob buffer. On input this parameter contains a pointer to the maximum size of the supplied rawBlob buffer. On output this parameter contains a pointer to the actual size of the unwrapped blob. On input, if this parameter points to a value of 0, then this function will return the size of the buffer required to hold the unwrapped blob without writing to the rawBlob buffer.
.sp
\fBNote:\fR The output data must be shorter than the BER-encoding, so berBlobSize is a useful upper limit on rawBlob buffer size.
.PP
.SS rawBlob
Pointer to a buffer to hold the unwrapped blob.
.SH "RETURN CODES"
.PP
\fBTspi_EncodeDER_TssBlob\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_DecodeBER_TssBlob\fR conforms to the Trusted Computing Group Software Specification Version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_DecodeBER_TssBlob\fR(3).

View File

@ -0,0 +1,77 @@
.\" Copyright (C) 2007 International Business Machines Corporation
.\" Written by Tom Lendacky based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_EncodeDER_TssBlob" 3 "2007-06-12" "TSS 1.2" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_EncodeDER_TssBlob \- generate a DER encoded TSS blob.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_EncodeDER_TssBlob(UINT32 " rawBlobSize ", BYTE* " rawBlob ","
.BI " UINT32 " blobType ", UINT32* " derBlobSize ","
.BI " BYTE* " derBlob ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_EncodeDER_TssBlob\fR is used to generate a DER-encoded blob in accordance with the ASN.1 data definitions in the Portable Data section of the Trusted Computing Group Software Stack Specification Version 1.2.
.SH "PARAMETERS"
.PP
.SS rawBlobSize
Size of the unwrapped blob.
.PP
.SS rawBlob
Pointer to the unwrapped blob.
.PP
.SS blobType
Type of blob being wrapped (refer to the TSS_BLOB_TYPE_* constants).
.PP
.SS derBlobSize
Pointer to the size of the derBlob buffer. On input this parameter contains a pointer to the maximum size of the supplied derBlob buffer. On output this parameter contains a pointer to the actual size of the DER-encoded blob. On input, if this parameter points to a value of 0, then this function will return the size of the buffer required to hold the DER-encoded blob without writing to the derBlob buffer.
.sp
\fBNote:\fR If the raw data blob length is less than 2^16 bytes then the DER-encoding may add no more than 20 bytes.
.PP
.SS derBlob
Pointer to a buffer to hold the DER-encoded blob.
.SH "RETURN CODES"
.PP
\fBTspi_EncodeDER_TssBlob\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_EncodeDER_TssBlob\fR conforms to the Trusted Computing Group Software Specification Version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_DecodeBER_TssBlob\fR(3).

View File

@ -0,0 +1,89 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_GetAttribData" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_GetAttribData \- get a non 32bit attribute of the object.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_GetAttribData(TSS_HOBJECT " hObject ", TSS_FLAG " attribFlag ","
.BI " TSS_FLAG " subFlag ", UINT32* " pulAttribDataSize ","
.BI " BYTE** " prgbAttribData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_GetAttribData\fR is used to get the value of a particular attribute associated iwth a particular object where that attribute does not happen to be a UINT32. The structure and size of the attribute data depends on the attribute.
.SH "PARAMETERS"
.PP
.SS hObject
Handle of the object where to retrieve the attribute.
.PP
.SS attribFlag
Flag indicating the attribute to query.
.PP
.SS subFlag
Sub flag indicating the attribute to query.
.PP
.SS pulAttribDataSize
Recieves the length (in bytes) of the prgbAttribData parameter.
.PP
.SS prgbAttribData
On successful completion of the command, this parameter points to a buffer containing the actual data of the specified attribute.
.SH "RETURN CODES"
.PP
\fBTspi_GetAttribData\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhObject\fR, \fIattribFlag\fR, or \fIsubFlag\fR are invalid.
.TP
.SM TSS_E_ATTRIB_FLAG
.TP
.SM TSS_E_ATTRIB_SUBFLAG
.TP
.SM TSS_E_ATTRIB_DATA
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_GetAttribData\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_SetAttribData\fR(3).

View File

@ -0,0 +1,105 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_GetAttribUint32" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_GetAttribUint32 \- get the value of particular attribute associated with a given class or object
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_GetAttribUint32(TSS_HOBJECT " hObject ", TSS_FLAG " attribFlag ","
.BI " TSS_FLAG " subFlag ", UINT32* " pulAttrib "); "
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_GetAttribUint32\fR
returns a specified uint32 attribute associated with a given class
or object. In order to use this command, you must first create an
object and then find the attributes you wish to set.
.SH "PARAMETERS"
.PP
.SS hObject
The \fIhObject\fR parameter is the handle of the object to retrieve
the attribute from.
.SS attribFlag
The \fIattribFlag\fR parameter indicates the specific attribute to query.
.SS subFlag
The \fIsubFlag\fR parameter also indicates the specific attribute to query.
.SS pulAttrib
The \fIpulAttrib\fR parameter is a pointer to the location where the
attribute value is returned.
.SH "RETURN CODES"
.PP
\fBTspi_GetAttribUint32\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhObject\fR is not a valid handle.
.TP
.SM TSS_E_INVALID_ATTRIB_FLAG
\fIattribFlag\fR is incorrect.
.TP
.SM TSS_E_INVALID_ATTRIB_SUBFLAG
\fIsubFlag\fR is incorrect.
.TP
.SM TSS_E_INVALID_ATTRIB_DATA
\fIpulAttrib\fR is incorrect.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_GetAttribUint32\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_GetAttribData\fR(3), \fBTspi_SetAttribUint32\fR(3),
\fBTspi_SetAttribData\fR(3).

View File

@ -0,0 +1,90 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_GetPolicyObject" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_GetPolicyObject \- get a policy object assigned to a working object
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_GetPolicyObject(TSS_HOBJECT " hObject ", TSS_FLAG " policyType ","
.BI " TSS_HPOLICY* " phPolicy "); "
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_GetPolicyObject\fR
returns a policy object currently assigned to a working object. If you
determine that the policy is different from what you require, you can
change the policy by creating a new one and using Tspi_Policy_AssignToObject.
.SH "PARAMETERS"
.PP
.SS hObject
The \fIhObject\fR parameter is the handle of the object.
.SS policyType
The \fIpolicyType\fR parameter indicates the policy type of interest.
Types are TSS_POLICY_USAGE and TSS_POLICY_MIGRATION.
.SS phPolicy
The \fIphPolicy\fR parameter receives the handle to the assigned policy object.
.SH "RETURN CODES"
.PP
\fBTspi_GetPolicyObject\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhContext\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_GetPolicyObject\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_GetTpmObject\fR(3), \fBTspi_Context_LoadKeyByUUID\fR(3),
\fBTspi_SetAttribUint32\fR(3), \fBTspi_Policy_AssignToObject\fR(3).

View File

@ -0,0 +1,98 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Hash_GetHashValue" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Hash_GetHashValue \- get the current hash value of a hash object
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Hash_GetHashValue(TSS_HHASH " hHash ", UINT32* " pulHashValueLength ", BYTE** " prgbHashValue ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Hash_GetHashValue\fR gets the hash value of
a hash object. \fBTspi_Context_FreeMemory\fR must be used to clean
up after this function, as memory is allocated for the
\fIprgbHashValue\fR data.
.SH "PARAMETERS"
.PP
.SS hHash
The handle to the hash object instance whose hash value should be signed.
.SS pulHashValueLength
Receives the length of the hash value data returned at the parameter
\fIprgbHashValue\fR.
.SS prgbHashValue
Receives a pointer to the hash value data.
.SH "RETURN CODES"
.PP
\fBTspi_Hash_GetHashValue\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhHash\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.TP
.SM TSS_E_HASH_INVALID_LENGTH
Hash length is inconsistent with hash algorithm.
.TP
.SM TSS_E_HASH_NO_DATA
Hash object has no internal hash value.
.SH "CONFORMING TO"
.PP
\fBTspi_Hash_GetHashValue\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Hash_UpdateHash\fR(3), \fBTspi_Hash_Sign\fR(3),
\fBTspi_Hash_VerifySignature\fR(3), \fBTspi_Hash_SetHashValue\fR(3).

View File

@ -0,0 +1,98 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Hash_SetHashValue" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Hash_SetHashValue \- Sets the hash value of a hash object for non-SHA1 hash objects.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Hash_SetHashValue(TSS_HHASH " hHash ", UINT32 " ulHashValueLength ", BYTE* " rgbHashValue ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Hash_SetHashValue\fR sets the hash value of
a hash object. If the object was created with the flag TSS_HASH_OTHER,
then the hash identifier has to be set by calling \fBTspi_SetAttribData\fR
to perform the sign operation.
.SH "PARAMETERS"
.PP
.SS hHash
The handle to the hash object instance whose hash value should be signed.
.SS ulHashValueLength
Indicates the length of the hash value data provided at the parameter
\fIrgbHashValue\fR.
.SS rgbHashValue
A pointer to the hash value data.
.SH "RETURN CODES"
.PP
\fBTspi_Hash_SetHashValue\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhHash\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.TP
.SM TSS_E_HASH_INVALID_LENGTH
Hash length is inconsistent with hash algorithm.
.TP
.SM TSS_E_HASH_NO_DATA
Hash object has no internal hash value.
.SH "CONFORMING TO"
.PP
\fBTspi_Hash_SetHashValue\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Hash_UpdateHash\fR(3), \fBTspi_Hash_Sign\fR(3),
\fBTspi_Hash_GetHashValue\fR(3).

View File

@ -0,0 +1,108 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Hash_Sign" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Hash_Sign \- sign the hash data of an object with a signing key
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Hash_Sign(TSS_HHASH " hHash ", TSS_HKEY " hKey ","
.BI " UINT32 " pulSignatureLength ", BYTE** " prgbSignature ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Hash_Sign\fR signs the hash data of an
object with a given signing key. The data must be set at the hash
instance associated with \fIhHash\fR by calling
\fBTspi_Hash_SetHashValue\fR or \fBTspi_Hash_UpdateHash\fR. The
\fBTspi_Hash_Sign\fR method allocates a memory block for the
\fIprgbSignature\fR data. This memory must be released using
\fBTspi_Context_FreeMemory\fR.
.SH "PARAMETERS"
.PP
.SS hHash
The handle to the hash object instance whose hash value should be signed.
.SS hKey
Handle to the key object which should be used for the signature.
.SS pulSignatureLength
Receives the length of the signature data returned at the parameter
\fIprgbSignature\fR on successful completion.
.SS prgbSignature
Receives a pointer to the signature data on successful completion.
.SH "RETURN CODES"
.PP
\fBTspi_Hash_Sign\fR returns TSS_SUCCESS on success, otherwise one
of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.TP
.SM TSS_E_HASH_INVALID_LENGTH
Hash length is inconsistent with hash algorithm.
.TP
.SM TSS_E_HASH_NO_DATA
Hash object has no internal hash value.
.TP
.SM TSS_E_HASH_NO_IDENTIFIER
The hash algorithm identifier is not set.
.SH "CONFORMING TO"
.PP
\fBTspi_Hash_Sign\fR conforms to the Trusted Computing Group Software
Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Hash_UpdateHash\fR(3), \fBTspi_Hash_SetHashValue\fR(3),
\fBTspi_Hash_VerifySignature\fR(3).

View File

@ -0,0 +1,99 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Hash_UpdateHashValue" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Hash_UpdateHashValue \- update the hash value of a hash object
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Hash_UpdateHashValue(TSS_HHASH " hHash ", UINT32 " ulDataLength ", BYTE* " rgbData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Hash_UpdateHashValue\fR updates the hash value
of a hash object with new information. If the object was created with
the flag TSS_HASH_OTHER, then this method will return an error. \fBThe
object can't be modified after Tspi_Hash_SetHashValue,
Tspi_Hash_GetHashValue, Tspi_Hash_Sign, or Tspi_Hash_VerifySignature
have been called on it.\fR
.SH "PARAMETERS"
.PP
.SS hHash
The handle to the hash object instance whose hash value should be signed.
.SS ulDataLength
Indicates the length of the data provided at the parameter \fIrgbData\fR.
.SS rgbData
A pointer to the data.
.SH "RETURN CODES"
.PP
\fBTspi_Hash_UpdateHashValue\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhHash\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.TP
.SM TSS_E_HASH_INVALID_LENGTH
Hash length is inconsistent with hash algorithm.
.TP
.SM TSS_E_HASH_NO_DATA
Hash object has no internal hash value.
.SH "CONFORMING TO"
.PP
\fBTspi_Hash_UpdateHashValue\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Hash_GetHashValue\fR(3), \fBTspi_Hash_Sign\fR(3),
\fBTspi_Hash_SetHashValue\fR(3), \fBTspi_Hash_VerifySignature\fR(3).

View File

@ -0,0 +1,105 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Hash_VerifySignature" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Hash_VerifySignature \- verify the hash value with a given signature
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Hash_VerifySignature(TSS_HHASH " hHash ", TSS_HKEY " hKey ","
.BI " UINT32 " ulSignatureLength ", BYTE* " rgbSignature ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Hash_VerifySignature\fR verifies the hash value
of a given hash object with a given signature. In order to use this
command, one must have a hash and a signature of the hash that one is
trying to verify. The public key which corresponds to the private key
used to sign the hash is also needed.
.SH "PARAMETERS"
.PP
.SS hHash
The handle to the hash object instance whose hash value should be signed.
.SS hKey
Handle to the key object which should be used for the signature verification.
.SS ulSignatureLength
The length of the signature data provided at the parameter \fIrgbSignature\fR.
.SS rgbSignature
A pointer to the signature data.
.SH "RETURN CODES"
.PP
\fBTspi_Hash_VerifySignature\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.TP
.SM TSS_E_HASH_INVALID_LENGTH
Hash length is inconsistent with hash algorithm.
.TP
.SM TSS_E_HASH_NO_DATA
Hash object has no internal hash value.
.TP
.SM TSS_E_INVALID_SIGSCHEME
Invalid signature scheme.
.SH "CONFORMING TO"
.PP
\fBTspi_Hash_VerifySignature\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Hash_UpdateHash\fR(3), \fBTspi_Hash_SetHashValue\fR(3),
\fBTspi_Hash_Sign\fR(3), \fRTspi_Hash_GetHashValue\fR(3).

View File

@ -0,0 +1,76 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_CertifyKey" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Key_CertifyKey \- sign a public key.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_CertifyKey(TSS_HKEY " hKey ", TSS_HKEY " hCertifyingKey ","
.BI " TSS_VALIDATION* " pValidationData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Key_CertifyKey\fR signs a public key.
.SH "PARAMETERS"
.PP
.SS hKey
Handle of the key object to be loaded.
.PP
.SS hCertifyingKey
Handle to the certifying key used to sign the addressed by hKey.
.PP
.SS pValidationData
Pointer to a structure of the type TSS_VALIDATION. After successful completion of the call the member rgbValidationData of this structure contains the signature data of the command. The member prgbData of the structure points to a buffer containing a TCPA_CERTIFY_INFO data stream as specified within the TCPA 1.1b Main Specification.
.SH "RETURN CODES"
.PP
\fBTspi_Key_CertifyKey\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhKey\fR or \fIhCertifyingKey\fR are invalid handles.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Key_CertifyKey\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_CreateKey\fR(3), \fBTspi_Key_WrapKey\fR(3).

View File

@ -0,0 +1,100 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_ConvertMigrationBlob" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Key_ConvertMigrationBlob \- create a wrapped key from a migration blob
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_ConvertMigrationBlob(TSS_HKEY " hKeyToMigrate ", TSS_HKEY " hParentKey ","
.BI " UINT32 " ulRandomLength ", BYTE* " rgbRandom ","
.BI " UINT32 " ulMigrationBlobLength ", BYTE* " rgbMigrationBlob ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Key_ConvertMigrationBlob\fR takes the
migration blob built by \fBTspi_Key_CreateMigrationBlob\fR using the
migration scheme TSS_MS_MIGRATE and creates a normal wrapped key. The
resulting normal wrapped key blob is stored in the instance associated
with hKeyToMigrate and may be retrieved from that instance by
\fBTspi_GetAttribData\fR.
.SH "PARAMETERS"
.PP
.SS hKeyToMigrate
The handle of the key object to convert.
.SS hParentKey
Handle to the parent key related to the key addressed by \fIhKeyToMigrate\fR.
.SS ulRandomLength
Length of random data provided at the parameter \fIrgbRandom\fR.
.SS rgbRandom
Random data as returned together with the migration blob by the
method \fBTspi_Key_CreateMigrationBlob\fR.
.SS ulMigrationBlobLength
Length of the migration blob data provided at the parameter \fIrgbMigrationBlob\fR.
.SS rgbMigrationBlob
Migration blob data as returned by a previously called method
\fBTspi_Key_CreateMigrationBlob\fR.
.SH "RETURN CODES"
.PP
\fBTspi_Key_ConvertMigrationBlob\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhKeyToMigrate\fR or \fIhParentKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_Key_ConvertMigrationBlob\fR conforms to the Trusted Computing
Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_LoadKey\fR(3), \fBTspi_Key_UnloadKey\fR(3),
\fBTspi_Key_CertifyKey\fR(3), \fBTspi_Key_CreateMigrationBlob\fR(3).

View File

@ -0,0 +1,71 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_CreateKey" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Key_CreateKey \- create a key pair within the TPM, wrapping it with the key addressed by hWrappingKey.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_CreateKey(TSS_HKEY " hKey ", TSS_HKEY " hWrappingKey ", TSS_HPCRS " hPcrComposite ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Key_CreateKey\fR
calls the TPM command TPM_CreateWrapKey. If hPcrComposite is not set to NULL, the created key blob is bound to this PCR values. The key object addressed by hKey must contain the key information needed for the creation.
.SH "PARAMETERS"
.PP
.SS hKey
The handle of the key object to create.
.PP
.SS hWrappingKey
The handle to the key used to wrap the newly created key.
.PP
.SS hPcrComposite
The handle to an object, if the value of the handle doesn't equal NULL, the newly create key will be bound ot the PCR values described with this object.
.SH "RETURN CODES"
.PP
\fBTspi_Key_CreateKey\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhKey\fR, \fIhWrappingKey\fR or \fIhPcrComposite\fR are invalid parameters.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Key_CreateKey\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_WrapKey\fR(3), \fBTspi_Key_CertifyKey\fR(3), \fBTspi_Key_RegisterKey\fR(3).

View File

@ -0,0 +1,97 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_CreateMigrationBlob" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Key_CreateMigrationBlob \- create a key blob suitable for migrating to another TPM.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_CreateMigrationBlob(TSS_HKEY " hKeyToMigrate ", TSS_HKEY " hParentKey ","
.BI " UINT32 " ulMigTicketLength ", BYTE* " rgbMigTicket ","
.BI " UINT32* " pulRandomLength ", BYTE** " prgbRandom ","
.BI " UINT32* " pulMigrationBlobLength ", BYTE** " prgbMigrationBlob ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Key_CreateMigrationBlob\fR returns a key blob containing an encrypted section, which will be different depending on the migration scheme indicated within the migration ticket previously created by the method Tspi_TPM_AuthorizeMigrationTicket().
.SH "PARAMETERS"
.PP
.SS hKeyToMigrate
Handle of the key object to migrate.
.PP
.SS hParentKey
Handle to the parent key related to the key addressed by hKeyToMigrate.
.PP
.SS ulMigTicketLength
The length (in bytes) of the rgbMigTickey parameter.
.PP
.SS rgbMigTicket
Pointer to memory containing the migration ticket (migration public key and its authorization digest).
.PP
.SS pulRandomLength
On successful completion this parameter returns the random data length returned at the parameter prgbRandom.
.PP
.SS prgbRandom
On successful completion this parameter returns the random data.
.PP
.SS pulMigrationBlobLength
On successful completion this parameter returns the length of the migration blob data returned at the parameter prgbMigrationBlob.
.PP
.SS prgbMigrationBlob
On successful completion this parameter returns the migration data blob.
.PP
.SH "RETURN CODES"
.PP
\fBTspi_Key_CreateMigrationBlob\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhKeyToMigrate\fR, \fIhParentKey\fR or \fIrgbMigTicket\fR are invalid parameters.
.TP
.SM TSS_E_BAD_PARAMETER - One of the passed parameters is wrong.
.TP
.SM TSS_E_KEY_NO_MIGRATION_POLICY - No migration policy picked.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Key_CreateMigrationBlob\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_CreateKey\fR(3), \fBTspi_Key_CertifyKey\fR(3).

View File

@ -0,0 +1,89 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_GetPubKey" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Key_GetPubKey \- get the public key of an object
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_GetPubKey(TSS_HKEY " hKey ", UINT32* " pulPubKeyLength ", BYTE** " prgbPubKey ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Key_GetPubKey\fR gets the public portion of a
given key object.
.SH "PARAMETERS"
.PP
.SS hKey
The \fIhKey\fR parameter is the handle of the key object to unload.
.SS pulPubKeyLength
The \fIpulPubKeyLength\fR parameter receives the length in bytes of the
\fIprgbPubKey\fR parameter.
.SS prgbPubKey
The \fIprgbPubKey\fR parameter receives a pointer to the memory block
containing the public key blob retrieved for the key object referenced
by \fIhKey\fR.
.SH "RETURN CODES"
.PP
\fBTspi_Key_GetPubKey\fR returns TSS_SUCCESS on success, otherwise one of
the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_Key_GetPubKey\fR conforms to the Trusted Computing Group Software
Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_LoadKey\fR(3), \fBTspi_Key_UnloadKey\fR(3),
\fBTspi_Key_CertifyKey\fR(3).

View File

@ -0,0 +1,83 @@
.\" Copyright (C) 2005 International Business Machines Corporation
.\" Written by Kent Yoder based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_LoadKey" 3 "2005-02-01" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Key_LoadKey \- load a key into the TPM
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_LoadKey(TSS_HKEY " hKey ", TSS_HKEY " hUnwrappingKey ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Key_LoadKey\fR loads the key referenced
by \fIhKey\fR into the TPM.
.SH "PARAMETERS"
.PP
.SS hKey
The \fIhKey\fR parameter is the handle of the key object to load.
.SS hUnwrappingKey
The \fIhUnwrappingKey\fR parameter is the handle of the key which should be used to unwrap the key addressed by \fIhKey\fR.
.SH "RETURN CODES"
.PP
\fBTspi_Key_LoadKey\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either \fIhKey\fR or \fIhUnwrappingKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_Key_LoadKey\fR conforms to the Trusted Computing Group Software
Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_UnloadKey\fR(3), \fBTspi_Key_GetPubKey\fR(3).

View File

@ -0,0 +1,83 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_UnloadKey" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_Key_UnloadKey \- unload a key from the TPM
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_UnloadKey(TSS_HKEY " hKey ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Key_UnloadKey\fR unloads the key referenced
by the given key object from the TPM. This call will result in a
TPM_EvictKey operation for the specified key.
.SH "PARAMETERS"
.PP
.SS hKey
The \fIhKey\fR parameter is the handle of the key object to unload.
.SH "RETURN CODES"
.PP
\fBTspi_Key_UnloadKey\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_Key_UnloadKey\fR conforms to the Trusted Computing Group Software
Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_LoadKey\fR(3), \fBTspi_Key_GetPubKey\fR(3).

View File

@ -0,0 +1,72 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Kent Yoder based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Key_WrapKey" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Key_WrapKey \- wrap a key with the key addressed by hWrappingKey.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Key_WrapKey(TSS_HKEY " hKey ", TSS_HKEY " hWrappingKey ","
.BI " TSS_HPCRS " hPcrComposite ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Key_WrapKey\fR
wraps the private key \fIhKey\fR using the public key addressed by \fIhWrappingKey\fR. If hPcrComposite is not set to NULL (0), the created key blob is bound to its PCR values. The key object addressed by \fIhKey\fR must contain the key information needed for the creation. On successful return from this call, \fIhKey\fR can be loaded into a TPM. \fIhKey\fR must have been created as a migratable key and should have its usage and migrations secrets set using \fBTspi_Policy_SetSecret(3)\fR. Also, \fIhKey\fR should have had its private key set to either RSA private component, p or q.
.SH "PARAMETERS"
.PP
.SS hKey
The handle of the key object that is wrapped.
.PP
.SS hWrappingKey
The handle to the key used to wrap the newly created key.
.PP
.SS hPcrComposite
The handle to an object, if the value of the handle doesn't equal NULL, the newly create key will be bound ot the PCR values described with this object.
.SH "RETURN CODES"
.PP
\fBTspi_Key_WrapKey\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhKey\fR, \fIhWrappingKey\fR or \fIhPcrComposite\fR are invalid handles.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Key_WrapKey\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Key_CreateKey\fR(3), \fBTspi_Key_CertifyKey\fR(3), \fBTspi_Key_RegisterKey\fR(3).

View File

@ -0,0 +1,77 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_PcrComposite_GetPcrValue" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_PcrComposite_GetPcrValue \- get the digest value of a given PCR index inside a PCR composite object.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_PcrComposite_GetPcrValue(TSS_HPCRS " hPcrComposite ", UINT32 " ulPcrIndex ","
.BI " UINT32* " ulPcrValueLength ", BYTE** " rgbPcrValue ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_PcrComposite_GetPcrValue\fR returns the digest value of a given PCR index inside a PCR composite object.
.SH "PARAMETERS"
.PP
.SS hPcrComposite
Handle of the PCR composite object instance where a PCR value should be returned.
.PP
.SS ulPcrIndex
This parameter indicates the index of the PCR to read.
.PP
.SS ulPcrValueLength
The length (in bytes) of the rgbPcrValue parameter.
.PP
.SS rgbPcrValue
After successful completion this parameter recieves a pointer to the memory block containing the PCR value of the PCR indicated by ulPcrIndex.
.SH "RETURN CODES"
.PP
\fBTspi_PcrComposite_GetPcrValue\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhPcrComposite\fR or \fIulPcrIndex\fR is an invalid parameter.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_PcrComposite_GetPcrValue\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_PcrComposite_SelectPcrIndex\fR(3), \fBTspi_PcrComposite_SetPcrValue\fR(3).

View File

@ -0,0 +1,69 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_PcrComposite_SelectPcrIndex" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_PcrComposite_SelectPcrIndex\- select a PCR index inside a PCR composite object.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_PcrComposite_SelectPcrIndex(TSS_HPCRS " hPcrComposite ", UINT32 " ulPcrIndex ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_PcrComposite_SelectPcrIndex\fR selects a PCR index inside a PCR composite object. The PCR composite object must be created withthe function Tspi_Context_CreateObject(). An exampled for the usage is the selection of PCR registeres before calling Tspi_TPM_Quote().
.SH "PARAMETERS"
.PP
.SS hPcrComposite
Handle of the PCR composite object instance where the index should be selected.
.PP
.SS ulPcrIndex
This parameter indicates the index of the PCR to select.
.SH "RETURN CODES"
.PP
\fBTspi_PcrComposite_SelectPcrIndex\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhPcrComposite\fR or \fIulPcrIndex\fR is an invalid handle.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_PcrComposite_SelectPcrIndex\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_TPM_Quote\fR(3), \fBTspi_PcrComposite_SetPcrValue\fR(3), \fBTspi_PcrComposite_GetPcrValue\fR(3).

View File

@ -0,0 +1,77 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_PcrComposite_SetPcrValue" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_PcrComposite_SetPcrValue\- set the digest for a given PCR index inside a PCR composite object.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_PcrComposite_SetPcrValue(TSS_HPCRS " hPcrComposite ", UINT32 " ulPcrIndex ","
.BI " UINT32 " ulPcrValueLength ", BYTE* " rgbPcrValue ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_PcrComposite_SetPcrValue\fR sets the digest for a given PCR index inside the PCR composite object.
.SH "PARAMETERS"
.PP
.SS hPcrComposite
Handle of the PCR composite object instance where a PCR value should be set.
.PP
.SS ulPcrIndex
This parameter indicates the index of the PCR to set.
.PP
.SS ulPcrValueLength
The length (in bytes) of the rgbPcrValue parameter.
.PP
.SS rgbPcrValue
Pointer to memory containing the actual value which should be set for the PCR indicated by ulPcrIndex.
.SH "RETURN CODES"
.PP
\fBTspi_PcrComposite_SetPcrValue\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - Either \fIhPcrComposite\fR or \fIulPcrIndex\fR is an invalid parameter.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_PcrComposite_SetPcrValue\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_PcrComposite_SelectPcrIndex\fR(3), \fBTspi_PcrComposite_GetPcrValue\fR(3).

View File

@ -0,0 +1,86 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Policy_AssignToObject" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_Policy_AssignToObject \- assign a policy to an object
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Policy_AssignToObject(TSS_HPOLICY " hPolicy ", TSS_HOBJECT " hObject ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Policy_AssignToObject\fR assigns a given object
to a certain policy. The object then uses its assigned policy to process
an authorized TPM command. When each new object is initialized, it is
assigned to the default policy, which is created when a context object
is created. When an object is assigned to a policy, a reference is added
to the list of assigned objects stored in the policy, and a reference
to the policy is stored in the object by internal object functions.
.SH "PARAMETERS"
.PP
.SS hPolicy
The \fIhPolicy\fR parameter is the handle of the policy object to be
assigned to.
.SS hObject
The \fIhObject\fR parameter is the object that will be assigned to
\fIhPolicy\fR.
.SH "RETURN CODES"
.PP
\fBTspi_Policy_AssignToObject\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhPolicy\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_Policy_AssignToObject\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Policy_SetSecret\fR(3), \fBTspi_Policy_FlushSecret\fR(3).

View File

@ -0,0 +1,77 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Policy_FlushSecret" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_Policy_FlushSecret \- flush a cached secret
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Policy_FlushSecret(TSS_HPOLICY " hPolicy ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_Policy_FlushSecret\fR
tells the TSS to flush a secret that it had cached for a user.
.SH "PARAMETERS"
.PP
.SS hPolicy
The \fIhPolicy\fR parameter is the handle of the policy object to be flushed.
.SH "RETURN CODES"
.PP
\fBTspi_Policy_FlushSecret\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhPolicy\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_Policy_FlushSecret\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Policy_SetSecret\fR(3), \fBTspi_Policy_AssignToObject\fR(3).

View File

@ -0,0 +1,80 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_Policy_SetSecret" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_Policy_SetSecret \- set the authorization data of a policy object and define the handling of its retrieval
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_Policy_SetSecret(TSS_HPOLICY " hPolicy ", TSS_FLAG " secretMode ","
.BI " UINT32 " ulSecretLength ", BYTE* " rgbSecret ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_Policy_SetSecret\fR
sets the authorization data for an object. This mthod also defines the handling of its retrieving. There are mand different paths as specified by the secretMode Flag.
.SH "PARAMETERS"
.PP
.SS hPolicy
The handle of the policy object.
.PP
.SS secretMode
Flag indicating the policy secret mode to set. Possible values are:
\fBTSS_SECRET_MODE_SHA1\fR - Secret in the form of 20 bytes of SHA-1 data. The secret will not be touched by the TSP.
\fBTSS_SECRET_MODE_PLAIN\fR - The data passed in will be hashed by the TSP using SHA-1.
\fBTSS_SECRET_MODE_POPUP\fR - The TSP will ask for a secret by displaying a GUI pop-up window.
\fBTSS_SECRET_MODE_CALLBACK\fR - The application will provide a callback function for authorization data.
\fBTSS_SECRET_MODE_NONE\fR - \fIulSecretLen\fR and \fIrgbSecret\fR are ignored and any object requiring auth assigned this policy will return an error.
.PP
.SS ulSecretLength
The length (in bytes) of the rgbSecret parameter.
.PP
.SS rgbSecret
The secret data blob.
.SH "RETURN CODES"
.PP
\fBTspi_Policy_SetSecret\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - hPolicy is an invalid parameter.
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_Policy_SetSecret\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Policy_FlushSecret\fR(3).

View File

@ -0,0 +1,87 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_SetAttribData" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_SetAttribData \- set a non 32bit attribute of an object.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_SetAttribData(TSS_HOBJECT " hObject ", TSS_FLAG " attribFlag ","
.BI " TSS_FLAG " subFlag ", UINT32 " ulAttribDataSize ","
.BI " BYTE* " rgbAttribData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_SetAttribData\fR sets the attributes associated with a given class of object that aren't UINT32. The structure and size of hte attribute data depends on the attribute.
.SH "PARAMETERS"
.PP
.SS hObject
Handle of the object where the attribute is to be set.
.PP
.SS attribFlag
Flag indicating the attribute to set.
.PP
.SS subFlag
Sub flag indicating the attribute to set
.PP
.SS ulAttribDataSize
Supplies the length (in bytes) of the rgbAttribData.
.PP
.SS rgbAttribData
Pointer to the actual data which is to be set for the specified attribute.
.SH "RETURN CODES"
.PP
\fBTspi_SetAttribData\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE - \fIhObject\fR is an invalid parameter.
.TP
.SM TSS_E_ATTRIB_FLAG - \fIattribFlag\fR is an invalid parameter.
.TP
.SM TSS_E_ATTRIB_SUBFLAG - \fIsubFlag\fR is an invalid parameter.
.TP
.SM TSS_E_ATTRIB_DATA - \fIrgbAttribData\fR is an invalid parameter.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_SetAttribData\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_GetAttribData\fR(3).

View File

@ -0,0 +1,106 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_SetAttribUint32" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developers Reference
.SH NAME
Tspi_SetAttribUint32 \- set a 32bit attribute associated with a given class or object
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_SetAttribUint32(TSS_HOBJECT " hObject ", TSS_FLAG " attribFlag ","
.BI " TSS_FLAG " subFlag ", UINT32 " ulAttrib "); "
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_SetAttribUint32\fR sets a uint32 attribute
associated with a given class or object. In order to use this
command, you must first create an object and then find the attributes
you wish to set.
.SH "PARAMETERS"
.PP
.SS hObject
The \fIhObject\fR parameter is the handle of the object or class
whose attributes are being set. Note that this is any object handler
- context, policy, TPM, key, hash, etc.
.SS attribFlag
The \fIattribFlag\fR parameter indicates the specific attribute to be set.
.SS subFlag
The \fIsubFlag\fR parameter also indicates the specific attribute to be set.
.SS ulAttrib
The \fIulAttrib\fR parameter is the value that the specified attribute
will be set to.
.SH "RETURN CODES"
.PP
\fBTspi_SetAttribUint32\fR returns TSS_SUCCESS on success, otherwise
one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhObject\fR is not a valid handle.
.TP
.SM TSS_E_INVALID_ATTRIB_FLAG
\fIattribFlag\fR is incorrect.
.TP
.SM TSS_E_INVALID_ATTRIB_SUBFLAG
\fIsubFlag\fR is incorrect.
.TP
.SM TSS_E_INVALID_ATTRIB_DATA
\fIulAttrib\fR is incorrect.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_SetAttribUint32\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_GetAttribUint32\fR(3), \fBTspi_SetAttribData\fR(3),
\fBTspi_GetAttribData\fR(3).

View File

@ -0,0 +1,84 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_AuthorizeMigrationTicket" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_TPM_AuthorizeMigrationTicket\- create the migration ticket required for the migration process.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_AuthorizeMigrationTicket(TSS_HTPM " hTPM ", TSS_HKEY " hMigrationKey ","
.BI " TSS_MIGRATE_SCHEME " migrationScheme ", UINT32* " pulMigTicketLength ","
.BI " BYTE** " prgbMigTicket ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_TPM_AuthorizeMigrationTicket\fR is used by the owner to authorize a target public key for migration. This mean sthat when a system is set up, the owner can decide that all archives should be done on a particular server. Then as keys are created, the user can pick one of these servers for the target of the migration of their keys, if they wish. This provides one of the two authorizations necessary to migrate a key.
.SH "PARAMETERS"
.PP
.SS hTPM
Handle of the TPM object
.PP
.SS hMigrationKey
Handle of the object representing the migration key.
.PP
.SS migrationScheme
Flag indiating the migration scheme to be used.
.PP
.SS pulMigTicketLength
Recieves the length (in bytes) of the prgbMigTicket parameter.
.PP
.SS prgbMigTicket
Recieves a pointer to thememory block containing the migration ticket blob.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_AuthorizeMigrationTicket\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either \fBhTPM\fR or \fBhMigrationKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_AuthorizeMigrationTicket\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fB(none)\fR.

View File

@ -0,0 +1,93 @@
.\" Copyright (C) 2007 International Business Machines Corporation
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_CMKSetRestrictions" 3 "2007-12-13" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_CMKSetRestrictions \- set restrictions on use of delegated Certified Migratable Keys
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_CMKSetRestrictions(TSS_HTPM " hTPM ", TSS_CMK_DELEGATE " CmkDelegate ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_TPM_CMKSetRestrictions\fR is used to set restrictions on the delegated use of Certified Migratable Keys (CMKs). Use of this command cannot itself be delegated.
.SH "PARAMETERS"
.PP
.SS hTPM
The \fIhTPM\fR parameter is used to specify the handle of the TPM object.
.SS CmkDelegate
The \fICmkDelegate\fR parameter is a bitmask describing the kinds of CMKs that can be used in a delegated auth session. Each bit represents a type of key. If the bit of a key type is set, then the CMK can be used in a delegated authorization session, otherwise use of that key will result in a TPM_E_INVALID_KEYUSAGE return code from the TPM.
The possible values of \fICmkDelegate\fR are any combination of the following flags logically OR'd together:
.TP
.SM "TSS_CMK_DELEGATE_SIGNING"
Allow use of signing keys.
.TP
.SM "TSS_CMK_DELEGATE_STORAGE"
Allow use of storage keys.
.TP
.SM "TSS_CMK_DELEGATE_BIND"
Allow use of binding keys.
.TP
.SM "TSS_CMK_DELEGATE_LEGACY"
Allow use of legacy keys.
.TP
.SM "TSS_CMK_DELEGATE_MIGRATE"
Allow use of migratable keys.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_CMKSetRestrictions\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhTPM\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_CMKSetRestrictions\fR conforms to the Trusted Computing Group
Software Specification version 1.2 Errata A
.SH "SEE ALSO"
.PP
\fBTspi_TPM_CMKApproveMA\fR(3), \fBTspi_TPM_CMKCreateTicket\fR(3), \fBTspi_Key_CMKCreateBlob\fR(3)

View File

@ -0,0 +1,80 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_CertifySelfTest" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_TPM_CertifySelfTest\- have the TPM sign its self test data
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_CertifySelfTest(TSS_HTPM " hTPM ", TSS_HKEY " hKey ","
.BI " TSS_VALIDATION* " pValidationData " );"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_TPM_CertifySelfTest\fR performs a self-test of each internal TPM function and returns an authenticated value (signature) if the test has passed.
.SH "PARAMETERS"
.PP
.SS hTPM
Handle of the TPM object
.PP
.SS hKey
Handle of the signature key object
.PP
.SS
pValidationData
Validation data structure.
[IN] Provide externalData information required to compute the signature.
[OUT] On successful completion of the ocmmand, the structure provides a buffer containing the validation data and a buffer containing the data the validation data was computed from.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_CertifySelfTest\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fBhTPM\fR is not a valid handle to a TPM object.
.TP
.SM TSS_E_INTERNAL_ERROR
An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_CertifySelfTest\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_TPM_SelfTestFull\fR(3).

View File

@ -0,0 +1,100 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_CheckMaintenancePubKey" 3 "2004-05-26" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_CheckMaintenancePubKey\- check the public maintenance key
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_CheckMaintenancePubKey(TSS_HTPM " hTPM ", TSS_HKEY " hMaintenanceKey ","
.BI " TSS_VALIDATION* " pValidationData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_TPM_CheckMaintenancePubKey\fR
checks the public maintenance key. If \fIhMaintenanceKey\fR
is NULL, then \fIpValidationData\fR must not be NULL; the caller has to
proof the digest on its own. If \fIhMaintenanceKey\fR is not NULL, then
\fIpValidationData\fR must be NULL; the TSS service provider proofs the
digest got internally from the TPM. The key information required for
proofing the public maintenance key must be set in the key object by
Tspi_SetAttribData before this method is called. \fBThis function is
not yet implemented\fR.
.SH "PARAMETERS"
.PP
.SS hTPM
Handle of the TPM object
.PP
.SS hMaintenanceKey
Handle of the maintenance key object
.PP
.SS pValidationData
Validation data structure.
[IN] Provide externalData information required to compute the signature.
[OUT] On successful completion of the ocmmand, the structure provides a
buffer containing the validation data and a buffer containing the data
the validation data was computed from.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_CheckMaintenancePubKey\fR returns TSS_SUCCESS on success,
otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhTPM\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more of the parameters is incorrect.
.TP
.SM TSS_E_NOTIMPL
The command is not implemented.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_CheckMaintenancePubKey\fR conforms to the Trusted Computing
Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_TPM_LoadMaintenancePubKey\fR(3),
\fBTspi_TPM_CreateMaintenanceArchive\fR(3),
\fBTspi_TPM_KillMaintenanceFeature\fR(3).

View File

@ -0,0 +1,85 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_ClearOwner" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_ClearOwner \- clear TPM ownership
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_ClearOwner(TSS_HTPM " hTPM ", TSS_BOOL " fForcedClear ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_TPM_ClearOwner\fR
wipes the TPM of everything but its endorsement key. It will wipe the SRK, so
anything locked to the SRK will also disappear when this command is executed.
This is the only way to be certain that keys are gone, as it is the only way
to guarantee that nothing can keep a copy of the key. You must assert either
physical presence or owner authorization in order to use this command.
.SH "PARAMETERS"
.PP
.SS hTPM
The \fIhTPM\fR parameter is used to specify the handle of the TPM object.
.SS fForcedClear
The \fIfForcedClear\fR parameter is used to tell whether this command is being
executed with owner authorization or with physical presence. If FALSE, then
TPM owner authorization is used. If TRUE, then physical presence is required
to clear the TPM.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_ClearOwner\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhTPM\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_ClearOwner\fR conforms to the Trusted Computing Group
Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_TPM_TakeOwnership\fR(3)

View File

@ -0,0 +1,102 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_CollateIdentityRequest" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_TPM_CollateIdentityRequest \- Gets all the informatin necessary to send to a trusted third party (TTP), repartory to asking the TTP to create a certificate for identity.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_CollateIdentityRequest(TSS_HTPM " hTPM ", TSS_HKEY " hKeySRK ","
.BI " TSS_HKEY " hCAPPubKey ","
.BI " UINT32 " ulIdentityLabelData ", BYTE* " rgbIdentityLabelData ","
.BI " TSS_HKEY " hIdentityKey ", TSS_ALGORITHM_ID " algid ","
.BI " UINT32* " pulTCPAIdentityReqLength ", BYTE** " prgbTCPAIdentityReq ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTSS_TPM_CollateIdentityRequest\fR
creates an identity key, binds it to the label and returns a certificate request package. The privacty CA requires this certificate request to attest the identity key.
Only the Owner of the TPM has the privledge of creating a TPM identity key.
The symmetric session key is required to provide confidentiality of the "TCPA_IDENTITY_REQ" data structure, which should be sent to the Privacy CA chosen by the owner.
.SH "PARAMETERS"
.PP
.SS hTPM
Handle of the TPM object.
.PP
.SS hKeySRK
Handle to the key object representing the Storage Root Key
.PP
.SS hCAPubKey
Handle to the key object representing the public key of the CA which signs the certificate of the created identity key.
.PP
.SS ulIdentityLabelLength
Supplies the length (in bytes) of the rgbIdentityLabelData parameter
.PP
.SS rgbLabelData
Pointer to a memory block containing the identity label, which should be a UNICODE string
.PP
.SS hIdentityKey
Handle to the identity key object
.PP
.SS algid
The type of symmetric algorithm touse as requred by the Enhanced CA.
.PP
.SS pulTCPAIdentityReqLength
Recieves the length (in bytes) of the prgbTCPAIdentityReq parameter
.PP
.SS prgbTCPAIdentyReq
Pointer to the memory block containing the certicficate request structure.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_CollateIdentityRequest\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either \fBhTPM\fR or \fBhKeySRK\fR or \fBhCAPubKey\fR is not a valid handle.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An error occurred internal to the TSS.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_CollateIdentityRequest\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_Context_LoadKeyByUUID\fR(3).

View File

@ -0,0 +1,94 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_CreateEndorsementKey" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_CreateEndorsementKey \- create the endorsement key
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_CreateEndorsementKey(TSS_HTPM " hTPM ", TSS_HKEY " hKey ","
.BI " TSS_VALIDATION* " pValidationData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_TPM_CreateEndorsementKey\fR
creates an endorsement key. \fBThis function is currently not implemented\fR.
Before this method is called, the key information for creating the key
must be set in the key object by \fITspi_SetAttribData\fR. On return,
the public endorsement key can be retrieved by \fITspi_GetAttribData\fR from
the key object.
.SH "PARAMETERS"
.PP
.SS hTPM
The \fIhTPM\fR parameter is used to specify the handle of the TPM object.
.SS hKey
The \fIhKey\fR parameter is the handle of the key specifying the
attributes of the endorsement key to create.
.SS pValidationData
The \fIpValidationData\fR parameter is a validation data structure. It provides
external information required to compute the signature. Once the command is
completed, the structure provides a buffer containing the validation data and
a buffer containing the data the validation data was computed from.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_CreateEndorsementKey\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhTPM\fR or \fIhKey\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_CreateEndorsementKey\fR conforms to the Trusted Computing
Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_TPM_GetPubEndorsementKey\fR(3), \fBTspi_Key_GetPubKey\fR(3).

View File

@ -0,0 +1,107 @@
.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_CreateMaintenanceArchive" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_CreateMaintenanceArchive \- create the TPM manufacturer specific maintenance archive data.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_CreateMaintenanceArchive(TSS_HTPM " hTPM ", TSS_BOOL " fGenerateRndNumber ","
.BI " UINT32* " pulRndNumberLength ", BYTE** " prgbRndNumber ","
.BI " UINT32* " pulArchiveDataLength ", BYTE** " prgbArchiveData ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\fBTspi_TPM_CreateMaintenanceArchive\fR
creates the TPM Manufacturer specific maintenance archive data.
\fBThis command is not currently implemented by any manufacturer\fR.
.SH "PARAMETERS"
.PP
.SS hTPM
The \fIhTPM\fR parameter is used to specify the handle of the TPM object.
.SS fGenerateRndNumber
The \fIfGenerateRndNumber\fR parameter determines how the random number
is generated. If TRUE, a random number is generated by the TPM and
returned. If FALSE, a random number is calculated based on the owner
secret.
.SS pulRndNumberLength
The \fIpulRndNumberLength\fR parameter receives the length in bytes of
the \fIprgbRndNumber\fR parameter. This is 0 if \fIfGenerateRndNumber\fR
is FALSE.
.SS prgbRndNumber
The \fIprgbRndNumber\fR parameter receives a pointer to the random number
data attributes. This is NULL if \fIfGenerateRndNumber\fR is FALSE.
.SS pulArchiveDataLength
The \fIpulArchiveDataLength\fR parameter receives the length in bytes of
the \fIprgbArchiveData\fR parameter.
.SS prgbArchiveData
The \fIprgbArchiveData\fR parameter receives a pointer to the archive data.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_CreateMaintenanceArchive\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhTPM\fR is not a valid handle.
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.
.TP
.SM TSS_E_NOTIMPL
The function is not implemented.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_CreateMaintenanceArchive\fR conforms to the Trusted Computing
Group Software Specification version 1.1 Golden
.SH "SEE ALSO"
.PP
\fBTspi_TPM_KillMaintenanceFeature\fR(3),
\fBTspi_TPM_LoadMaintenancePubKey\fR(3),
\fBTspi_TPM_CheckMaintenancePubKey\fR(3).

View File

@ -0,0 +1,112 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_DAA_JoinCreateDaaPubKey" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_DAA_JoinCreateDaaPubKey \- computes the credential request for the DAA Issuer
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_DAA_JoinCreateDaaPubKey("
.BI " TSS_HDAA " hDAA ","
.BI " TSS_HTPM " hTPM ","
.BI " UINT32 " authenticationChallengeLength ","
.BI " BYTE* " authenticationChallenge ","
.BI " UINT32 " nonceIssuerLength ","
.BI " BYTE* " nonceIssuer ","
.BI " UINT32 " attributesPlatformLength ","
.BI " BYTE** " attributesPlatform ","
.BI " TSS_DAA_JOIN_SESSION* " joinSession ","
.BI " TSS_DAA_CREDENTIAL_REQUEST* " credentialRequest
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_TPM_DAA_JoinCreateDaaPubKey\fR
is the second (between \fBTspi_TPM_DAA_JoinInit()\fR and \fBTspi_TPM_DAA_JoinStoreCredential()\fR)
out of 3 functions to execute in order to receive a DAA Credential.
It computes the credential request for the DAA Issuer, which also includes the Platforms's
DAA public key and the attributes that were chosen by the Platform, and which are not visible
to the DAA Issuer. The Platform can commit to the attribute values it has chosen.
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS hTPM
The \fIhTPM\fR parameter is the handle to the TPM object.
.SS authenticationChallengeLength
The \fIauthenticationChallengeLength\fR parameter is length of authenticationChallenge (256 bytes - DAA_SIZE_NE1).
.SS authenticationChallenge
The \fIauthenticationChallenge\fR parameter is the second nonce of the DAA Issuer that is encrypted by the endorsement public key.
It is used as a challenge to authenticate the underlying TPM.
.SS nonceIssuerLength
The \fInonceIssuerLength\fR parameter is the length of nonceIssuer (20 bytes).
.SS nonceIssuer
The \fInonceIssuer\fR parameter is the nonce of the DAA Issuer.
.SS attributesPlatformLength
The \fIattributesPlatformLength\fR parameter is length of attributesPlatform array, which is determined
by the DAA Issuer public key (). The length of a single attribute is ln/8. ln is defined as the size of
the RSA modulus (2048).
.SS attributesPlatform
The \fIattributesPlatform\fR parameter is an array of attributes to be encoded into the DAA Credential
not visible to the DAA Issuer.
.SS joinSession
The \fIjoinSession\fR parameter is a structure containing the DAA Join session information.
.SS credentialRequest
The \fIcredentialRequest\fR parameter is the credential request of the Platform, it contains the blinded
DAA public key of the platform on which the DAA Issuer will issue the credential the blinded attributes
chosen by the Platform.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_DAA_JoinCreateDaaPubKey\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either the DAA is not valid.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_DAA_JoinCreateDaaPubKey\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_TPM_DAA_JoinInit\fR(3)
\fBTspi_TPM_DAA_JoinStoreCredential\fR(3)

View File

@ -0,0 +1,119 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_DAA_JoinInit" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_DAA_JoinInit \- start the DAA Join process
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSPICALL Tspi_TPM_DAA_JoinInit("
.BI " TSS_HDAA " hDAA ","
.BI " TSS_HTPM " hTPM ","
.BI " TSS_HKEY " issuer_pk ","
.BI " UINT32 " issuer_authentication_PKLength ","
.BI " TSS_HKEY* " issuer_authentication_PK ","
.BI " UINT32 " issuer_authentication_PK_signaturesLength ","
.BI " BYTE** " issuer_authentication_PK_signatures ","
.BI " UINT32* " capital_UprimeLength ","
.BI " BYTE** " capital_Uprime ","
.BI " TSS_DAA_IDENTITY_PROOF* " identity_proof ","
.BI " TSS_DAA_JOIN_SESSION* " join_session
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_TPM_DAA_JoinInit\fR
is the first out of 3 functions to execute in order to receive a DAA Credential. It
verifies the keys of the DAA Issuer and computes the TPM DAA public key.
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS hTPM
The \fIhTPM\fR parameter is the handle to the TPM object.
.SS issuer_pk
The \fIissuer_pk\fR parameter is the of the DAA Issuer public key.
.SS issuer_authentication_PKLength
The \fIissuer_authentication_PKLength\fR parameter is the length of the array of \fIissuerAuthPKs\fR.
.SS issuer_authentication_PK
The \fIissuer_authentication_PK\fR parameter is an array of RSA public keys (key chain) of
the DAA Issuer used to authenticate the DAA Issuer public key. The size of the modulus must
be TPM_DAA_SIZE_issuerModulus (256).
.SS issuer_authentication_PK_signaturesLength
The \fIissuer_authentication_PK_signaturesLength\fR parameter is the length of the array of
issuerAuthPKSignatures. It is equal to issuerAuthPKsLength. The length of an element of the
array is TPM_DAA_SIZE_issuerModulus (256).
.SS issuer_authentication_PK_signatures
The \fIissuer_authentication_PK_signatures\fR parameter is the array of byte arrays representing
signatures on the modulus of the above key chain (issuerAuthPKs) in more details, the array has
the following content (S(K[1],K[0]),S(K[2],N[1]),..S(K[ k ],K[n-1]), S(TPM_DAA_ISSUER,K[ k ])),
where S(msg,privateKey) denotes the signature function with msg being signed by the privateKey.
.SS capital_UprimeLength
The \fIcapital_UprimeLength\fR parameter is the length of capitalUprime which is ln/8. ln is
defined as the size of the RSA modulus (2048).
.SS capital_Uprime
The \fIcapital_Uprime\fR parameter is U'.
.SS identityProof
The \fIidentityProof\fR parameter is a structure containing the endorsement, platform and conformance
credential.
.SS joinSession
The \fIjoinSession\fR parameter is a structure containing DAA Join session information.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_DAA_JoinInit\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either the DAA or the TPM handler is not valid.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.TP
.SM TSS_E_DAA_ISSUER_KEY_ERROR
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_DAA_JoinInit\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_TPM_DAA_JoinCreateDaaPubKey\fR(3)
\fBTspi_TPM_DAA_JoinStoreCredential\fR(3)

View File

@ -0,0 +1,89 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_DAA_JoinStoreCredential" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_DAA_JoinStoreCredential \- compute the final DAA Credential
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_DAA_JoinStoreCredential("
.BI " TSS_HDAA " hDAA ","
.BI " TSS_HTPM " hTPM ","
.BI " TSS_DAA_CRED_ISSUER " credIssuer ","
.BI " TSS_DAA_JOIN_SESSION " joinSession ","
.BI " TSS_HKEY* " hDaaCredential
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_TPM_DAA_JoinStoreCredential\fR
is the last out of 3 functions (after \fBTspi_TPM_DAA_JoinInit()\fR and \fBTspi_TPM_DAA_JoinCreateDaaPubKey()\fR)
to execute in order to receive a DAA Credential. It verifies the issued credential from the DAA Issuer
and computes the final DAA Credential.
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS hTPM
The \fIhTPM\fR parameter is the handle to the TPM object.
.SS credIssuer
The \fIcredIssuer\fR parameter is the DAA Credential issued by the DAA Issuer including proof of correctness.
.SS joinSession
The \fIjoinSession\fR parameter is the structure containing the DAA Join session information.
.SS hDaaCredential
The \fIhDaaCredential\fR parameter is the handle of the received DAA Credential.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_DAA_JoinStoreCredential\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either the DAA or the TPM handler is not valid.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SM TSS_E_DAA_CREDENTIAL_PROOF_ERROR
One of the verification of the issued credential failed
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_DAA_JoinStoreCredential\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP
\fBTspi_TPM_DAA_JoinInit\fR(3)
\fBTspi_TPM_DAA_JoinCreateDaaPubKey\fR(3)

View File

@ -0,0 +1,109 @@
.\" Copyright (C) 2006 International Business Machines Corporation
.\" Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_DAA_Sign" 3 "2006-09-04" "TSS 1.2"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_DAA_Sign \- creates a DAA Signature that proofs ownership of the DAA Credential
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_DAA_Sign("
.BI " TSS_HDAA " hDAA ","
.BI " TSS_HTPM " hTPM ","
.BI " TSS_HKEY " hDaaCredential ","
.BI " TSS_DAA_SELECTED_ATTRIB " revealAttributes ","
.BI " UINT32 " verifierBaseNameLength ","
.BI " BYTE* " verifierBaseName ","
.BI " UINT32 " verifierNonceLength ","
.BI " BYTE* " verifierNonce ","
.BI " TSS_DAA_SIGN_DATA " signData ","
.BI " TSS_DAA_SIGNATURE* " daaSignature
.BI ");"
.fi
.sp
.ad
.hy
.SH "DESCRIPTION"
.PP
\Tspi_TPM_DAA_Sign\fR
creates a DAA Signature that proofs ownership of the DAA Credential and includes a
signature on either a public AIK or a message. If anonymity revocation is enabled, the value Nv
is not provided in the clear anymore but encrypted under the public key of anonymity revocation
authority, a trusted third party (TTP). Thus the DAA Verifier cannot check for revocation or link
a transaction/signature to prior ones. Depending on how is chosen, the protocol either allows
implementing anonymity revocation (i.e., using the DAA Issuer's long-term base name as the DAA
Verifier's base name ), or having the TTP doing the linking of different signatures for the same
DAA Verifier (i.e., using the DAA Verifier's base name ).
.SH "PARAMETERS"
.PP
.SS hDAA
The \fIhDAA\fR parameter is used to specify the handle of the DAA object.
.SS hTPM
The \fIhTPM\fR parameter is the handle to the TPM object.
.SS hDaaCredential
The \fIhDaaCredential\fR parameter is the Handle of the DAA Credential.
.SS revealAttributes
The \fIrevealAttributes\fR parameter is the attributes which the credential owner wants to reveal
to the DAA Verifier.
.SS verifierBaseNameLength
The \fIverifierBaseNameLength\fR parameter is the Length of verifierBaseName.
.SS verifierBaseName
The \fIverifierBaseName\fR parameter is the base name chosen by the DAA Verifier. If it equals to null,
the platform chooses a random base name.
.SS verifierNonceLength
The \fIverifierNonceLength\fR parameter is the length of verifierNonceName (20 bytes).
.SS verifierNonce
The \fIverifierNonce\fR parameter is the nonce created by the DAA Verifier.
.SS signData
The \fIsignData\fR parameter is the handle of the received DAA Credential.
.SS daaSignature
The \fIdaaSignature\fR parameter is the DAA signature containing the proof of ownership of the DAA Credential,
as well as a signature on either an AIK or a message.
.SH "RETURN CODES"
.PP
\fBTspi_TPM_DAA_Sign\fR returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either the DAA or the TPM handler is not valid.
.TP
.SM TSS_E_BAD_PARAMETER
.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.
.SH "CONFORMING TO"
.PP
\fBTspi_TPM_DAA_Sign\fR conforms to the Trusted Computing Group
Software Specification version 1.2
.SH "SEE ALSO"
.PP

Some files were not shown because too many files have changed in this diff Show More