Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Java Cryptography
SPECIAL OFFER: Upgrade this ebook with O’Reilly
A Note Regarding Supplemental Files
Preface
Who Are You?
About This Book
What’s Not in This Book
About the Examples
Versions
File Naming
CLASSPATH
Variable Naming
Downloading
Font Conventions
Request for Comments
Acknowledgments
1. Introduction
Secure Systems
Cryptography
Platform Security
Astute Inequalities
Hello, zoT1wy1njA0=!
Masher
SecretWriting
2. Concepts
Confidentiality
Symmetric Ciphers
Asymmetric Ciphers
Hybrid Systems
Distributing Keys
Key Agreement Protocols
Integrity
Authentication
Certificates
Certificate Chains
Random Numbers
Algorithms
Size Does Matter
Names and Numbers
MD5
SHA-1
HmacMD5 and HmacSHA1
DSA
ElGamal signatures
DES
DESede
PBEWithMD5AndDES
ElGamal ciphers
DH
3. Architecture
Alphabet Soup
Concept Classes
API and SPI
Factory Methods
Standard Names
The Provider Architecture
Key Management
Summary
4. Random Numbers
SecureRandom
Self-Seeding
Keyboard Timing
Seeder
Pitfalls
SeederDialog
5. Key Management
Keys
Key Generators
KeyPairGenerator
KeyGenerator
Algorithm-Specific Initialization
Key Translators
SecretKeySpec
SecretKeyFactory
From things to keys
From keys to things
KeyFactory
Key Agreement
Diffie-Hellman
javax.crypto.KeyAgreement
SKIP
SkipServer
SkipClient
Skipper: Multiparty key agreement
The Identity Key Management Paradigm
Key Holders
Principal
Identity
Signer
IdentityScope
KeyManager
The KeyStore Key Management Paradigm
KeyStore
Getting
Loading and saving
Adding private key entries
Adding trusted certificate entries
Retrieving entries
keytool
Creating a key pair
Ubiquitous options and defaults
Inspecting the keystore
Generating a CSR
Importing certificates
Other options
Changing the default keystore class
6. Authentication
Message Digests
Getting
Feeding
Digesting
One, Two, Three!
Digest Streams
Protected Password Login
Double-Strength Password Login
MACs
Setting Up
Feeding
Calculating the Code
For Instance
Signatures
Generating a Signature
Verifying a Signature
Hancock
Login, Again
SignedObject
Certificates
java.security.cert.Certificate
Generating a Certificate
Verifying a Certificate
X.509
Spill
Certificate Revocation Lists
7. Encryption
Streams and Blocks
Block Ciphers
Padding
PKCS#5
Other padding schemes
Modes
ECB
CBC
PCBC
CFB
OFB
Other modes
Algorithms
javax.crypto.Cipher
Getting a Cipher
Basic Information
Initializing a Cipher
Generic
Name brand
Feeding Data to a Cipher
Cipher’s Close Relatives
Cipher Streams
javax.crypto.SealedObject
Passphrase Encryption
Salt and Vinegar
Test Drive
Inside Cipher
SPI
Setup
Basic information
Initializing
Feeding
BlockCipher
CBCWrapper
CFBWrapper
Hybrid Systems
PGP
S/MIME
SSL
Sources
Using the browser
SET
8. Signed Applets
Renegade
HotJava
Prepare a Signer
Bundle the Applet
Sign the Applet
Test the Applet
Set Up the Browser
Navigator
Prepare a Signer
Ask for Permission
Sign the Applet
Bundle the Applet
Test the Applet
Set Up the Browser
Internet Explorer
Recipe
Prepare a Signer
Bundle the Applet
Sign the Applet
Test the Applet
Summary
9. Writing a Provider
Getting Started
Algorithm Names and Implementations
A Simple Provider
An Algorithm by Any Other Name
Installing the Provider
Adding the ElGamal Classes
ElGamal
Key Pair Generation
Signature
Cipher
Generating Keys
Key Classes
ElGamalKeyPairGenerator
Signature
Cipher
10. SafeTalk
Using SafeTalk
First-Time Setup
Exporting a Key
Importing a Key
Starting a Conversation
Receiving a Conversation
Loopback Testing
Under the Hood
Architecture
Session
SessionServer
Receiver
SafeTalk
11. CipherMail
Using CipherMail
First-Time Setup
Preferences
Keys
Getting and Reading Mail
Sending Mail
Under the Hood
Architecture
Message Format
Message
POP3
SMTP
Composer
CipherMail
12. Outside the Box
Application Design
Self-Contained
Demonstration Software
Client/Server
Client Applets
Access Control
Decompilers and Bytecode Obfuscation
Endpoint Security
File Security
Serialization
Deleting Files
Virtual Memory
Memory Scanning
Network Security
Summary
A. BigInteger
B. Base64
C. JAR
Creating
Extracting
The Manifest
Signing
D. Javakey
Creating
Inspecting
Gimme the Keys...
Certificates
To and Fro
Sign of the Times
The Care and Feeding of Keys
E. Quick Reference
Package java.security
Class java.security.AlgorithmParameters
Class java.security.AlgorithmParametersSpi
Class java.security.DigestInputStream
Class java.security.DigestOutputStream
Class java.security.Identity
Class java.security.IdentityScope
Interface java.security.Key
Class java.security.KeyFactory
Class java.security.KeyFactorySpi
Class java.security.KeyPair
Class java.security.KeyPairGenerator
Class java.security.KeyPairGeneratorSpi
Class java.security.KeyStore
Class java.security.MessageDigest
Class java.security.MessageDigestSpi
Interface java.security.Principal
Interface java.security.PrivateKey
Class java.security.Provider
Interface java.security.PublicKey
Class java.security.SecureRandom
Class java.security.Security
Class java.security.Signature
Class java.security.SignatureSpi
Class java.security.SignedObject
Class java.security.Signer
Package java.security.cert
Class java.security.cert.Certificate
Class java.security.cert.RevokedCertificate
Class java.security.cert.X509Certificate
Class java.security.cert.X509CRL
Interface java.security.cert.X509Extension
Package java.security.interfaces
Interface java.security.interfaces.DSAKey
Interface java.security.interfaces.DSAKeyPairGenerator
Interface java.security.interfaces.DSAParams
Interface java.security.interfaces.DSAPrivateKey
Interface java.security.interfaces.DSAPublicKey
Package java.security.spec
Interface java.security.spec.AlgorithmParameterSpec
Class java.security.spec.DSAParameterSpec
Class java.security.spec.DSAPrivateKeySpec
Class java.security.spec.DSAPublicKeySpec
Class java.security.spec.EncodedKeySpec
Interface java.security.spec.KeySpec
Class java.security.spec.PKCS8EncodedKeySpec
Class java.security.spec.X509EncodedKeySpec
Package javax.crypto
Class javax.crypto.Cipher
Class javax.crypto.CipherInputStream
Class javax.crypto.CipherOutputStream
Class javax.crypto.CipherSpi
Class javax.crypto.KeyAgreement
Class javax.crypto.KeyAgreementSpi
Class javax.crypto.KeyGenerator
Class javax.crypto.KeyGeneratorSpi
Class javax.crypto.NullCipher
Class javax.crypto.SealedObject
Interface javax.crypto.SecretKey
Class javax.crypto.SecretKeyFactory
Class javax.crypto.SecretKeyFactorySpi
Package javax.crypto.interfaces
Interface javax.crypto.interfaces.DHKey
Interface javax.crypto.interfaces.DHPrivateKey
Interface javax.crypto.interfaces.DHPublicKey
Interface javax.crypto.interfaces.RSAPrivateKey
Interface javax.crypto.interfaces.RSAPrivateKeyCrt
Interface javax.crypto.interfaces.RSAPublicKey
Package javax.crypto.spec
Class javax.crypto.spec.DESKeySpec
Class javax.crypto.spec.DESedeKeySpec
Class javax.crypto.spec.DHGenParameterSpec
Class javax.crypto.spec.DHParameterSpec
Class javax.crypto.spec.DHPrivateKeySpec
Class javax.crypto.spec.DHPublicKeySpec
Class javax.crypto.spec.IvParameterSpec
Class javax.crypto.spec.PBEKeySpec
Class javax.crypto.spec.PBEParameterSpec
Class javax.crypto.spec.RSAPrivateKeyCrtSpec
Class javax.crypto.spec.RSAPrivateKeySpec
Class javax.crypto.spec.RSAPublicKeySpec
Index
About the Author
Colophon
SPECIAL OFFER: Upgrade this ebook with O’Reilly
← Prev
Back
Next →
← Prev
Back
Next →