Table of Contents
- List of Tables
 - Title and Copyright Information
 - Preface
 - What's New in Oracle Security Developer Tools?
 - 
               
               
                  
                  1
                       Introduction to Oracle Security Developer Tools
               
                  
               
               
               
- 1.1 About Cryptography
 - 1.2 About Public Key Infrastructure (PKI)
 - 1.3 About Web Services Security
 - 1.4 About SAML
 - 1.5 About Identity Federation
 - 1.6 About Oracle Security Developer Tools
 - 1.7 About Supported Standards
 - 1.8 Setting the CLASSPATH Environment Variable
 
 - 
               
               
                  
                  2
                       Oracle Crypto 
               
                  
               
               
               
- 2.1 About Oracle Crypto Features and Benefits
 - 2.2 About the Oracle Crypto Packages
 - 2.3 Setting Up Your Oracle Crypto Environment
 - 
                     
                     
                        
                        2.4
                            Understanding and Using Core Classes and Interfaces of Oracle Crypto
                     
                        
                     
                     
                     
- 2.4.1 About Oracle Crypto Key Classes
 - 2.4.2 Using the Oracle Crypto Key Generation Classes
 - 2.4.3 Using Oracle Crypto Cipher Classes
 - 2.4.4 Using the Oracle Crypto Signature Classes
 - 2.4.5 Using Oracle Crypto Message Digest Classes
 - 2.4.6 Using the Oracle Crypto Key Agreement Class
 - 2.4.7 Using Oracle Crypto Pseudo-Random Number Generator Classes
 
 - 2.5 The Oracle Crypto and Crypto FIPS Java API References
 
 - 3 Oracle Security Engine
 - 
               
               
                  
                  4
                       Oracle CMS
               
                  
               
               
               
- 4.1 Oracle CMS Features and Benefits
 - 4.2 Setting Up Your Oracle CMS Environment
 - 
                     
                     
                        
                        4.3
                            Understanding and Developing Applications with Oracle CMS
                     
                        
                     
                     
                     
- 4.3.1 About Oracle CMS Classes
 - 4.3.2 About CMS Object Types
 - 
                           
                           
                              
                              4.3.3
                                  Constructing CMS Objects using the CMS***ContentInfo Classes
                           
                              
                           
                           
                           
- 4.3.3.1 Using the Abstract Base Class CMSContentInfo
 - 4.3.3.2 Using the CMSDataContentInfo Class
 - 4.3.3.3 Using the ESSReceipt Class
 - 4.3.3.4 The CMSDigestedDataContentInfo Class
 - 4.3.3.5 The CMSSignedDataContentInfo Class
 - 4.3.3.6 Using the CMSEncryptedDataContentInfo Class
 - 
                                 
                                 
                                    
                                    4.3.3.7
                                        Understanding and Using the CMSEnvelopedDataContentInfo Class
                                 
                                    
                                 
                                 
                                 
- 4.3.3.7.1 Constructing a CMS Enveloped-data Object
 - 4.3.3.7.2 Reading a CMS Enveloped-data Object
 - 4.3.3.7.3 About the Key Transport Key Exchange Mechanism
 - 4.3.3.7.4 About the Key Agreement Key Exchange Mechanism
 - 4.3.3.7.5 About the Key Encryption (Wrap) Key Exchange Mechanism
 - 4.3.3.7.6 Using the Detached Enveloped-data CMS Object
 
 - 4.3.3.8 Using the CMSAuthenticatedDataContentInfo Class
 - 4.3.3.9 Working with Wrapped (Triple or more) CMSContentInfo Objects
 
 - 
                           
                           
                              
                              4.3.4
                                  CMS Objects using the CMS***Stream and CMS***Connector Classes
                           
                              
                           
                           
                           
- 4.3.4.1 Limitations of the CMS***Stream and CMS***Connector Classes
 - 4.3.4.2 Difference between CMS***Stream and CMS***Connector Classes
 - 
                                 
                                 
                                    
                                    4.3.4.3
                                        Using the CMS***OutputStream and CMS***InputStream Classes
                                 
                                    
                                 
                                 
                                 
- 4.3.4.3.1 Working with the CMS id-data Object
 - 4.3.4.3.2 Working with the CMS id-ct-receipt Object
 - 4.3.4.3.3 Working with CMS id-digestedData Objects
 - 4.3.4.3.4 Working with CMS id-signedData Objects
 - 4.3.4.3.5 Working with CMS id-encryptedData Objects
 - 4.3.4.3.6 Working with CMS id-envelopedData Objects
 - 4.3.4.3.7 About CMS id-ct-authData Objects
 
 - 4.3.4.4 Wrapping (Triple or more) CMS***Connector Objects
 
 
 - 4.4 The Oracle CMS Java API Reference
 
 - 
               
               
                  
                  5
                       Oracle S/MIME
               
                  
               
               
               
- 5.1 Oracle S/MIME Features and Benefits
 - 5.2 Setting Up Your Oracle S/MIME Environment
 - 
                     
                     
                        
                        5.3
                            Developing Applications with Oracle S/MIME
                     
                        
                     
                     
                     
- 
                           
                           
                              
                              5.3.1
                                  Core Classes and Interfaces of Oracle S/MIME
                           
                              
                           
                           
                           
- 5.3.1.1 Using the oracle.security.crypto.smime.SmimeObject Interface
 - 5.3.1.2 Using the oracle.security.crypto.smime.SmimeSignedObject Interface
 - 5.3.1.3 Using the oracle.security.crypto.smime.SmimeSigned Class
 - 5.3.1.4 Using the oracle.security.crypto.smime.SmimeEnveloped Class
 - 5.3.1.5 Using the oracle.security.crypto.smime.SmimeMultipartSigned Class
 - 5.3.1.6 Using the oracle.security.crypto.smime.SmimeSignedReceipt Class
 - 5.3.1.7 Using the oracle.security.crypto.smime.SmimeCompressed Class
 
 - 
                           
                           
                              
                              5.3.2
                                  Supporting Classes and Interfaces
                           
                              
                           
                           
                           
- 5.3.2.1 Using the oracle.security.crypto.smime.Smime Interface
 - 5.3.2.2 Using the oracle.security.crypto.smime.SmimeUtils Class
 - 5.3.2.3 Using the oracle.security.crypto.smime.MailTrustPolicy Class
 - 5.3.2.4 Using the oracle.security.crypto.smime.SmimeCapabilities Class
 - 5.3.2.5 Using the oracle.security.crypto.smime.SmimeDataContentHandler Class
 - 5.3.2.6 Using the oracle.security.crypto.smime.ess Package
 
 - 
                           
                           
                              
                              5.3.3
                                  Using the Oracle S/MIME Classes
                           
                              
                           
                           
                           
- 5.3.3.1 Using the Abstract Class SmimeObject
 - 5.3.3.2 Signing Messages
 - 5.3.3.3 Creating "Multipart/Signed" Entities
 - 5.3.3.4 Creating Digital Envelopes
 - 5.3.3.5 Creating "Certificates-Only" Messages
 - 5.3.3.6 Reading Messages
 - 5.3.3.7 Authenticating Signed Messages
 - 5.3.3.8 Opening Digital Envelopes (Encrypted Messages)
 - 5.3.3.9 Adding Enhanced Security Services (ESS)
 - 5.3.3.10 Processing Enhanced Security Services (ESS)
 
 
 - 
                           
                           
                              
                              5.3.1
                                  Core Classes and Interfaces of Oracle S/MIME
                           
                              
                           
                           
                           
 - 5.4 The Oracle S/MIME Java API Reference
 
 - 6 Oracle PKI SDK
 - 
               
               
                  
                  7
                       Oracle XML Security
               
                  
               
               
               
- 7.1 Oracle XML Security Features and Benefits
 - 7.2 Setting Up Your Oracle XML Security Environment
 - 7.3 Signing Data with Oracle XML Security
 - 7.4 Verifying XML Data
 - 7.5 Understanding how Data is Encrypted
 - 7.6 Understanding Data Decryption with Oracle XML Security
 - 7.7 Understanding and Using Element Wrappers in the OSDT XML APIs
 - 7.8 Signing Data with the Oracle XML Security API
 - 7.9 Verifying Signatures with the Oracle XML Security API
 - 7.10 Encrypting Data with the Oracle XML Security API
 - 7.11 Decrypting Data with the Oracle XML Security API
 - 7.12 About Supporting Classes and Interfaces
 - 7.13 Common XML Security Questions
 - 7.14 Best Practices for Oracle XML Security
 - 7.15 The Oracle XML Security Java API Reference
 
 - 
               
               
                  
                  8
                       Oracle SAML
               
                  
               
               
               
- 8.1 Oracle SAML Features and Benefits
 - 8.2 Oracle SAML 1.0/1.1
 - 8.3 Oracle SAML 2.0
 
 - 
               
               
                  
                  9
                       Oracle Web Services Security
               
                  
               
               
               
- 9.1 Setting Up Your Oracle Web Services Security Environment
 - 
                     
                     
                        
                        9.2
                            Classes and Interfaces of Oracle Web Services Security
                     
                        
                     
                     
                     
- 9.2.1 Element Wrappers in Oracle Web Services Security
 - 9.2.2 The <wsse:Security> header
 - 9.2.3 Security Tokens (ST) in Oracle Web Services Security
 - 
                           
                           
                              
                              9.2.4
                                  Security Token References (STR) 
                           
                              
                           
                           
                           
- 9.2.4.1 Creating a direct reference STR
 - 9.2.4.2 Creating a Reference STR for a username token
 - 9.2.4.3 Creating a Reference STR for a X509 Token
 - 9.2.4.4 Creating a Reference STR for Kerberos Token
 - 9.2.4.5 Creating a Reference STR for a SAML Assertion token
 - 9.2.4.6 Creating a Reference STR for an EncryptedKey
 - 9.2.4.7 Creating a Reference STR for a generic token
 - 9.2.4.8 Creating a Key Identifier STR
 - 9.2.4.9 Creating a KeyIdentifier STR for an X509 Token
 - 9.2.4.10 Creating a KeyIdentifier STR for a Kerberos Token
 - 9.2.4.11 Creating a KeyIdentifier STR for a SAML Assertion Token
 - 9.2.4.12 Creating a KeyIdentifier STR for an EncryptedKey
 - 9.2.4.13 Adding an STRTransform
 
 - 9.2.5 Signing and Verifying
 - 9.2.6 Encrypting and Decrypting
 
 - 9.3 Additional Resources for Web Services Security
 - 9.4 The Oracle Web Services Security Java API Reference
 
 - 
               
               
                  
                  10
                       Oracle Liberty SDK 
               
                  
               
               
               
- 10.1 Oracle Liberty SDK Features and Benefits
 - 
                     
                     
                        
                        10.2
                            Oracle Liberty 1.1
                     
                        
                     
                     
                     
- 10.2.1 Setting Up Your Oracle Liberty 1.1 Environment
 - 
                           
                           
                              
                              10.2.2
                                  Overview of Oracle Liberty 1.1 Classes and Interfaces
                           
                              
                           
                           
                           
- 
                                 
                                 
                                    
                                    10.2.2.1
                                        Using Core Classes and Interfaces
                                 
                                    
                                 
                                 
                                 
- 10.2.2.1.1 Using the oracle.security.xmlsec.liberty.v11.AuthnRequest Class
 - 10.2.2.1.2 Using the oracle.security.xmlsec.liberty.v11.AuthnResponse Class
 - 10.2.2.1.3 Using the oracle.security.xmlsec.liberty.v11.FederationTerminationNotification Class
 - 10.2.2.1.4 Using the oracle.security.xmlsec.liberty.v11.LogoutRequest Class
 - 10.2.2.1.5 Using the oracle.security.xmlsec.liberty.v11.LogoutResponse Class
 - 10.2.2.1.6 Using the oracle.security.xmlsec.liberty.v11.RegisterNameIdentifierRequest Class
 - 10.2.2.1.7 Using the oracle.security.xmlsec.liberty.v11.RegisterNameIdentifierResponse Class
 
 - 
                                 
                                 
                                    
                                    10.2.2.2
                                        Using Supporting Classes and Interfaces
                                 
                                    
                                 
                                 
                                 
- 10.2.2.2.1 Using the oracle.security.xmlsec.liberty.v11.LibertyInitializer class
 - 10.2.2.2.2 The oracle.security.xmlsec.liberty.v11.LibertyURI interface
 - 10.2.2.2.3 Using the oracle.security.xmlsec.liberty.v11.ac.AuthenticationContextURI interface
 - 10.2.2.2.4 The oracle.security.xmlsec.util.ac.AuthenticationContextStatement class
 - 10.2.2.2.5 The oracle.security.xmlsec.saml.SAMLURI Interface
 - 10.2.2.2.6 The oracle.security.xmlsec.saml.SAMLMessage class
 
 
 - 
                                 
                                 
                                    
                                    10.2.2.1
                                        Using Core Classes and Interfaces
                                 
                                    
                                 
                                 
                                 
 - 10.2.3 The Oracle Liberty 1.1 API Reference
 
 - 
                     
                     
                        
                        10.3
                            Oracle Liberty 1.2
                     
                        
                     
                     
                     
- 10.3.1 Setting Up Your Oracle Liberty 1.2 Environment
 - 
                           
                           
                              
                              10.3.2
                                  Overview of Oracle Liberty 1.2 Classes and Interfaces
                           
                              
                           
                           
                           
- 
                                 
                                 
                                    
                                    10.3.2.1
                                        Core Classes and Interfaces
                                 
                                    
                                 
                                 
                                 
- 10.3.2.1.1 Using the oracle.security.xmlsec.saml.Assertion class
 - 10.3.2.1.2 Using the oracle.security.xmlsec.samlp.Request class
 - 10.3.2.1.3 Using the oracle.security.xmlsec.samlp.Response class
 - 10.3.2.1.4 Using the oracle.security.xmlsec.liberty.v12.AuthnRequest class
 - 10.3.2.1.5 Using the oracle.security.xmlsec.liberty.v12.AuthnResponse class
 - 10.3.2.1.6 Using the oracle.security.xmlsec.liberty.v12.FederationTerminationNotification class
 - 10.3.2.1.7 Using the oracle.security.xmlsec.liberty.v12.LogoutRequest class
 - 10.3.2.1.8 Using the oracle.security.xmlsec.liberty.v12.LogoutResponse class
 - 10.3.2.1.9 Using the oracle.security.xmlsec.liberty.v12.RegisterNameIdentifierRequest class
 - 10.3.2.1.10 Using the oracle.security.xmlsec.liberty.v12.RegisterNameIdentifierResponse class
 
 - 
                                 
                                 
                                    
                                    10.3.2.2
                                        Supporting Classes and Interfaces
                                 
                                    
                                 
                                 
                                 
- 10.3.2.2.1 The oracle.security.xmlsec.liberty.v12.LibertyInitializer class
 - 10.3.2.2.2 The oracle.security.xmlsec.liberty.v12.LibertyURI interface
 - 10.3.2.2.3 The oracle.security.xmlsec.util.ac.AuthenticationContextStatement class
 - 10.3.2.2.4 The oracle.security.xmlsec.saml.SAMLInitializer class
 - 10.3.2.2.5 The oracle.security.xmlsec.saml.SAMLURI Interface
 - 10.3.2.2.6 The oracle.security.xmlsec.saml.SAMLMessage Class
 
 
 - 
                                 
                                 
                                    
                                    10.3.2.1
                                        Core Classes and Interfaces
                                 
                                    
                                 
                                 
                                 
 - 10.3.3 The Oracle Liberty SDK 1.2 API Reference
 
 
 - 
               
               
                  
                  11
                       Oracle XKMS
               
                  
               
               
               
- 11.1 Understanding Oracle XKMS Features and Benefits
 - 11.2 Setting Up Your Oracle XKMS Environment
 - 
                     
                     
                        
                        11.3
                            Core Classes and Interfaces
                     
                        
                     
                     
                     
- 11.3.1 oracle.security.xmlsec.xkms.xkiss.LocateRequest
 - 11.3.2 Using the oracle.security.xmlsec.xkms.xkiss.LocateResult Class
 - 11.3.3 Using the oracle.security.xmlsec.xkms.xkiss.ValidateRequest Class
 - 11.3.4 Using the oracle.security.xmlsec.xkms.xkiss.ValidateResult Class
 - 11.3.5 Using the oracle.security.xmlsec.xkms.xkrss.RecoverRequest Class
 - 11.3.6 Using the oracle.security.xmlsec.xkms.xkrss.RecoverResult Class
 
 - 11.4 The Oracle XKMS Java API Reference
 
 - 12 Oracle JSON Web Token
 - A Migrating to the JCE Framework
 - B References