Chapter 1: Introduction Chapter 2: Engineering concerns and platform security Basic security Specifications On errors Input sanitisation Memory Randomness Time Side channels Privacy and anonymity Trusted computing Virtual environments Public key infrastructure What cryptography does not provide Data lifetimes Options, knobs, and dials Compatibility Conclusion Further reading Chapter 3: Symmetric S