Documentation  |   Table of Contents   |  < Previous   |  Next >   |  Index

Table of Contents

Security and Cryptography

Exploring Palm OS

About This Document

The Exploring Palm OS Series

Additional Resources

Changes to This Document

3113-002

3113-001

Part I: Concepts

1 Palm OS Cobalt Security

Cryptographic Provider Manager (CPM)

Provider Information and Manipulation

Key Functions

Message Digest Functions

Encryption and Decryption Functions

Authentication Manager

Authentication Tokens

Token Management Functions

Using the Authentication Manager

Creating an Authentication Manager Plug-In

Manipulating Authentication Manager Plug-Ins

Authorization Manager

Certificate Manager

Certificate Store Operations

Certificate Verification and Parsing

Certificate Backup and Restore

Security Services

Current Security Setting

Lockout Settings

Security Policies

Signature Verification Library

Signature Verification

Signing Code

What can be Signed

Signing Algorithm

Signing Tools

Signed Code and Shared Libraries

Signed Code and Overlays

Securing Databases

Synchronization and Backup of Secure Databases

2 SSL Concepts

SSL Library Architecture

Critical Extensions

Attributes

Always-Used Attributes

Debugging and Informational Attributes

Advanced Protocol Attributes

Sample Code

Part II: Reference

3 Authentication Manager

Authentication Manager Structures and Types

AmApplicationCtxType

AmPluginInfoType

AmPluginType

AmTokenAttributesType

AmTokenInfoType

AmTokenPropertiesType

AmTokenType

Authentication Manager Constants

Well-Known Tokens

Miscellaneous Authentication Manager Constants

Authentication Manager Error Codes

AmAuthenticationEnum

AmTokenCacheSettings

AmTokenEnum

AmTokenStrength

Authentication Manager Functions and Macros

AmAuthenticateToken

AmCreateToken

AmDestroyToken

AmGetPluginInfo

AmGetPluginReferences

AmGetTokenBySystemId

AmGetTokenExtendedInfo

AmGetTokenInfo

AmModifyToken

AmRegisterPlugin

AmRemovePlugin

4 AmPlugin

AmPlugin Structures and Types

AmMemHandle

AmPluginFunctionsType

AmPluginPrivType

AmTokenDataType

AmTokenPrivType

AmPlugin Constants

AmCallMode

AmPlugin Functions and Macros

AmInitializeUIContext

AmMemHandleFree

AmMemHandleLock

AmMemHandleNew

AmMemHandleUnlock

AmReleaseUIContext

5 AmPluginCodePrint

AmPluginCodePrint Structures and Types

AmPluginCodePrintExtInfoType

6 AmPluginSignedCode

AmPluginSignedCode Structures and Types

AmPluginSignedCodeExtInfoType

7 Authorization Manager

Authorization Manager Structures and Types

AzmActionType

AzmNotificationType

AzmRuleSetType

Authorization Manager Constants

Miscellaneous Authorization Manager Constants

Authorization Manager Error Codes

Authorization Manager Functions and Macros

AzmAddRule

AzmGetSyncBypass

AzmNonInteractiveAuthorize

AzmSetSyncBypass

8 Certificate Manager

Certificate Manager Structures and Types

CertMgrCertChainType

CertMgrCertElementEnum

CertMgrCertFieldEnum

CertMgrCertInfoType

CertMgrCertSearchEnum

CertMgrElementListType

CertMgrElementType

CertMgrVerifyResultType

Certificate Manager Constants

X509Cert Element Fields

RSA Element Fields

RDN Element Fields

X509Extensions Element Fields

Data Types

Certificate Formats

Certificate Manager Error Codes

Certificate Verification Failure Codes

Miscellaneous Certificate Manager Constants

Certificate Manager Element Field Macros

apCertMgrElementFieldRDNOIDN

apCertMgrElementFieldRDNValueN

apCertMgrElementFieldX509ExBytesN

apCertMgrElementFieldX509ExCriticalN

apCertMgrElementFieldX509ExOIDN

Certificate Manager Functions and Macros

CertMgrAddCert

CertMgrExportCert

CertMgrFindCert

CertMgrGetField

CertMgrImportCert

CertMgrReleaseCertInfo

CertMgrRemoveCert

CertMgrVerifyCert

CertMgrVerifyFailure

9 CPM Library ARM Interface

CPM Library ARM Interface Functions and Macros

CPMLibAddRandomSeed

CPMLibClose

CPMLibDecrypt

CPMLibDecryptFinal

CPMLibDecryptInit

CPMLibDecryptUpdate

CPMLibDeriveKeyData

CPMLibEncrypt

CPMLibEncryptFinal

CPMLibEncryptInit

CPMLibEncryptUpdate

CPMLibEnumerateProviders

CPMLibExportCipherInfo

CPMLibExportHashInfo

CPMLibExportKeyInfo

CPMLibExportKeyPairInfo

CPMLibExportMACInfo

CPMLibExportSignInfo

CPMLibExportVerifyInfo

CPMLibGenerateKey

CPMLibGenerateKeyPair

CPMLibGenerateRandomBytes

CPMLibGetInfo

CPMLibGetProviderInfo

CPMLibHash

CPMLibHashFinal

CPMLibHashInit

CPMLibHashUpdate

CPMLibImportCipherInfo

CPMLibImportHashInfo

CPMLibImportKeyInfo

CPMLibImportKeyPairInfo

CPMLibImportMACInfo

CPMLibImportSignInfo

CPMLibImportVerifyInfo

CPMLibMAC

CPMLibMACFinal

CPMLibMACInit

CPMLibMACUpdate

CPMLibOpen

CPMLibReleaseCipherInfo

CPMLibReleaseHashInfo

CPMLibReleaseKeyInfo

CPMLibReleaseMACInfo

CPMLibReleaseSignInfo

CPMLibReleaseVerifyInfo

CPMLibSetDebugLevel

CPMLibSetDefaultProvider

CPMLibSign

CPMLibSignFinal

CPMLibSignInit

CPMLibSignUpdate

CPMLibSleep

CPMLibVerify

CPMLibVerifyFinal

CPMLibVerifyInit

CPMLibVerifyUpdate

CPMLibWake

10 CPM Library Common Definitions

CPM Library Structures and Types

APCipherInfoType

APDerivedKeyInfoType

APHashInfoType

APKeyInfoType

APMACInfoType

APProviderContextType

APProviderInfoType

APSignInfoType

APVerifyInfoType

CPMInfoType

VerifyResultType

CPM Library Constants

APAlgorithmEnum

APHashEnum

APKeyClassEnum

APKeyDerivationEnum

APKeyDerivationUsageEnum

APKeyUsageEnum

APMACEnum

APModeEnum

APPaddingEnum

Import/Export Types

Cryptographic Provider Functionality Flags

Debug Output Levels

CPM Library Error Codes

Miscellaneous CPM Library Constants

11 CPM Library Provider

CPM Library Provider Structures and Types

CPMCallerInfoType

CPM Library Provider Function Argument Structures

APCmdPBType

APDecrypt

APDecryptFinal

APDecryptInit

APDecryptUpdate

APDeriveKeyData

APEncrypt

APEncryptFinal

APEncryptInit

APEncryptUpdate

APExportCipherInfo

APExportHashInfo

APExportKeyInfo

APExportKeyPairInfo

APExportMacInfo

APExportSignInfo

APExportVerifyInfo

APGenerateKey

APGenerateKeyPair

APGetProviderInfo

APHash

APHashFinal

APHashInit

APHashUpdate

APImportCipherInfo

APImportHashInfo

APImportKeyInfo

APImportKeyPairInfo

APImportMacInfo

APImportSignInfo

APImportVerifyInfo

APMac

APMacFinal

APMacInit

APMacUpdate

APReleaseCipherInfo

APReleaseHashInfo

APReleaseKeyInfo

APReleaseMACInfo

APReleaseSignInfo

APReleaseVerifyInfo

APSign

APSignFinal

APSignInit

APSignUpdate

APVerify

APVerifyFinal

APVerifyInit

APVerifyUpdate

CPM Library Provider Constants

APCmdType

Miscellaneous CPM Library Provider Constants

Application-Defined Functions

APDispatchProcPtr

CPMAddRandomSeedProcPtr

CPMDebugOutProcPtr

CPMDispatcherProcPtr

CPMGenerateRandomBytesProcPtr

12 Encrypt

Encrypt Functions and Macros

EncDES

EncDigestMD4

EncDigestMD5

13 Password

Password Constants

Miscellaneous Password Constants

Password Functions and Macros

PwdExists

PwdRemove

PwdSet

PwdVerify

14 Security Services

Security Services Structures and Types

SecSvcsDecodeLockoutTimePtrType

SecSvcsEncodeLockoutTimePtrType

SecSvcsGetDeviceLockoutPtrType

SecSvcsGetDevicePoliciesPtrType

SecSvcsGetDeviceSettingPtrType

SecSvcsIsDeviceLockedPtrType

SecSvcsSetDeviceLockedPtrType

SecSvcsSetDeviceLockoutPtrType

SecSvcsSetDeviceSettingPtrType

Security Services Constants

Security Services Entry Points

Security Services Errors

Miscellaneous Security Services Constants

SecSvcsDeviceLockoutEnum

SecSvcsDeviceSettingEnum

Security Services Functions and Macros

SecSvcsDecodeLockoutTime

SecSvcsEncodeLockoutTime

SecSvcsGetDeviceLockout

SecSvcsGetDevicePolicies

SecSvcsGetDeviceSetting

SecSvcsIsDeviceLocked

SecSvcsSetDeviceLocked

SecSvcsSetDeviceLockout

SecSvcsSetDeviceSetting

15 Signature Verification Library

Signature Verification Library Structures and Types

SignCertificateBlockType

SignCertificateIDType

SignSignatureBlockType

SignGetNumSignaturesPtrType

SignGetShLibCertIdListPtrType

SignVerifySignatureByIDPtrType

SignVerifySignatureByIndexPtrType

Signature Verification Library Constants

Signature Verification Library Entry Points

Signature Verification Library Errors

Signature Verification Library Functions and Macros

SignGetCertificateByID

SignGetCertificateByIndex

SignGetDigest

SignGetNumCertificates

SignGetNumSignatures

SignGetOverlayCertIdList

SignGetShLibCertIdList

SignGetSignatureByID

SignGetSignatureByIndex

SignVerifySignatureByID

SignVerifySignatureByIndex

16 SSL Library

SSL Library Structures and Types

SslAttribute

SslCallback

SslCipherSuiteInfo

SslContext

SslIoBuf

SslLib

SslSession

SslSocket

SSL Library Constants

SSL Open Mode Flags

SSL Close Mode Flags

Mode Attribute Values

Protocol Versions

Protocol Variants

Compatibility Flags

SSL Callback Commands

Cipher Suite Info Constants

Cipher Suites

Ciphers

Info Callbacks

InfoInterest Values

LastApi Attribute Values

LastIO Attribute Values

SSL Protocol States

SSL Server Alerts

SSL Library Errors

Miscellaneous SSL Library Constants

SSL Library Functions

SslClose

SslConsume

SslContextCreate

SslContextDestroy

SslContextGetLong

SslContextGetPtr

SslContextSetLong

SslContextSetPtr

SslFlush

SslLibClose

SslLibCreate

SslLibDestroy

SslLibGetLong

SslLibGetPtr

SslLibName

SslLibOpen

SslLibSetLong

SslLibSetPtr

SslLibSleep

SslLibWake

SslOpen

SslPeek

SslRead

SslReceive

SslSend

SslWrite

Application-Defined Functions

SslCallbackFunc

17 SSL Library Macros

SSL Library Macro Constants

Attribute Values

SSL Library Macros

SslContextGet_AppInt32

SslContextGet_AppPtr

SslContextGet_AutoFlush

SslContextGet_BufferedReuse

SslContextGet_CertChain

SslContextGet_CipherSuite

SslContextGet_CipherSuiteInfo

SslContextGet_CipherSuites

SslContextGet_ClientCertRequest

SslContextGet_Compat

SslContextGet_DelayReadServerFinished

SslContextGet_DontSendShutdown

SslContextGet_DontWaitForShutdown

SslContextGet_Error

SslContextGet_HelloVersion

SslContextGet_HsState

SslContextGet_InfoCallback

SslContextGet_InfoInterest

SslContextGet_IoFlags

SslContextGet_IoStruct

SslContextGet_IoTimeout

SslContextGet_LastAlert

SslContextGet_LastApi

SslContextGet_LastIo

SslContextGet_Mode

SslContextGet_PeerCert

SslContextGet_PeerCertInfoType

SslContextGet_PeerCommonName

SslContextGet_ProtocolSupport

SslContextGet_ProtocolVersion

SslContextGet_RbufSize

SslContextGet_ReadBufPending

SslContextGet_ReadOutstanding

SslContextGet_ReadRecPending

SslContextGet_ReadStreaming

SslContextGet_SessionReused

SslContextGet_Socket

SslContextGet_SslSession

SslContextGet_SslVerify

SslContextGet_Streaming

SslContextGet_VerifyCallback

SslContextGet_WbufSize

SslContextGet_WriteBufPending

SslContextSet_AppInt32

SslContextSet_AppPtr

SslContextSet_AutoFlush

SslContextSet_BufferedReuse

SslContextSet_CipherSuites

SslContextSet_Compat

SslContextSet_DelayReadServerFinished

SslContextSet_DontSendShutdown

SslContextSet_DontWaitForShutdown

SslContextSet_Error

SslContextSet_HelloVersion

SslContextSet_InfoCallback

SslContextSet_InfoInterest

SslContextSet_IoFlags

SslContextSet_IoStruct

SslContextSet_IoTimeout

SslContextSet_LastAlert

SslContextSet_Mode

SslContextSet_ProtocolSupport

SslContextSet_ProtocolVersion

SslContextSet_RbufSize

SslContextSet_ReadStreaming

SslContextSet_Socket

SslContextSet_SslSession

SslContextSet_VerifyCallback

SslContextSet_WbufSize

SslLibGet_AppInt32

SslLibGet_AppPtr

SslLibGet_AutoFlush

SslLibGet_BufferedReuse

SslLibGet_CipherSuites

SslLibGet_Compat

SslLibGet_DelayReadServerFinished

SslLibGet_DontSendShutdown

SslLibGet_DontWaitForShutdown

SslLibGet_HelloVersion

SslLibGet_InfoCallback

SslLibGet_InfoInterest

SslLibGet_Mode

SslLibGet_ProtocolSupport

SslLibGet_ProtocolVersion

SslLibGet_RbufSize

SslLibGet_ReadStreaming

SslLibGet_VerifyCallback

SslLibGet_WbufSize

SslLibSet_AppInt32

SslLibSet_AppPtr

SslLibSet_AutoFlush

SslLibSet_BufferedReuse

SslLibSet_CipherSuites

SslLibSet_Compat

SslLibSet_DelayReadServerFinished

SslLibSet_DontSendShutdown

SslLibSet_DontWaitForShutdown

SslLibSet_HelloVersion

SslLibSet_InfoCallback

SslLibSet_InfoInterest

SslLibSet_Mode

SslLibSet_ProtocolSupport

SslLibSet_ProtocolVersion

SslLibSet_RbufSize

SslLibSet_ReadStreaming

SslLibSet_VerifyCallback

SslLibSet_WbufSize