(Bouncy Castle FIPS Java API) User Guide Version

(Bouncy Castle FIPS Java API) User Guide Version

Legion of the Bouncy Castle Inc. BC-FJA (Bouncy Castle FIPS Java API) User Guide Version: 0.1 Date: 12/29/15 Legion of the Bouncy Castle Inc. (ABN 84 166 338 567) https://www.bouncycastle.org Copyright and Trademark Notice This document is licensed under a Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/) Sponsored By http://www.tripwire.com/ http://www.orionhealth.com http://www.cryptoworkshop.com http://www.galois.com http://www.jscape.com Acknowledgements Crypto Workshop would like to acknowledge that its contribution has largely been made possible through its clients purchasing Bouncy Castle support agreements. The following people and organisations also contributed financially to this project. Organisations: Intertrust Technologies, Lobster GmbH, PrimeKey Solutions AB, and Yozons, Inc. Individuals: Rui Abreu, Tim Brown, Joe Brutto, Drew Carey Buglione, Andrew Carroll, Natalie Marie Ellis, Barry Faba, and Brian Phelps. To them and our anonymous donors, we are grateful. Thanks. Validation testing was performed by InfoGard Laboratories. For more information on validation or revalidations of the software contact: Marc Ireland FIPS Program Manager, CISSP InfoGard Laboratories 709 Fiero Lane, Suite 25 San Luis Obispo, CA 93401 United States of America For further information about this distribution, or to help support this work further, please contact us at [email protected]. Table of Contents 1 Introduction.......................................................................................................................................7 1.1 About the FIPS Validation.........................................................................................................7 1.2 Use with the BC PKIX, OpenPGP (PG), and SMIME APIs.....................................................7 1.3 Commercial Support..................................................................................................................7 1.4 Using the Module in an Application for FIPS compliance........................................................7 1.5 If you need Changes or Enhancements......................................................................................8 2 Installation.........................................................................................................................................9 2.1 Provider installation into the JRE..............................................................................................9 2.2 Provider installation as a provider for the JSSE......................................................................10 2.3 Provider configuration.............................................................................................................10 3 Cipher Algorithms (Symmetric)......................................................................................................12 3.1 Available in Approved Mode Operation..................................................................................12 3.2 Available in General Operation................................................................................................12 3.3 Paddings Available...................................................................................................................13 3.3 Examples..................................................................................................................................13 3.3.1 AES Encryption using CBC and PKCS5/7Padding.........................................................14 3.3.2 JCE AES Encryption using CBC and PKCS5/7Padding.................................................15 3.3.3 JCE AES Encryption using GCM and an AEADParameterSpec.....................................15 3.3.4 JCE AES Encryption using CTR a short IV....................................................................15 4 Cipher Algorithms (Public Key)......................................................................................................17 4.1 Available in General Operation................................................................................................17 4.2 Paddings Available...................................................................................................................17 4.3 Examples..................................................................................................................................17 4.3.1 JCE RSA with PKCS1 Padding.......................................................................................17 4.3.1 JCE ElGamal with OAEP SHA1 Padding.......................................................................17 5 Key Agreement Algorithms.............................................................................................................19 5.1 Available in Approved Mode Operation..................................................................................19 5.2 Available in General Operation................................................................................................21 5.3 Examples..................................................................................................................................21 5.3.1 Basic Agreement..............................................................................................................21 5.3.2 Basic Agreement with Cofactor.......................................................................................22 5.3.3 Basic Agreement with PRF..............................................................................................22 5.3.4 JCE Basic Agreement.......................................................................................................22 5.3.5 JCE One-pass MQV.........................................................................................................23 5.3.6 JCE One-pass MQV with key confirmation....................................................................23 6 Key Derivation Functions................................................................................................................25 6.1 Available in Approved Mode Operation..................................................................................25 6.2 Available in General Mode Operation.....................................................................................25 6.3 Examples..................................................................................................................................25 6.3.1 Feedback Mode................................................................................................................25 6.3.2 X9.63 KDF.......................................................................................................................26 7 Key Stores.......................................................................................................................................27 7.1 Examples..................................................................................................................................27 7.1.1 BCFKS key store.............................................................................................................27 8 Key Transport Algorithms...............................................................................................................28 8.1 Examples..................................................................................................................................28 8.1.1 JCE KTS-KEM-KWS with key confirmation.................................................................28 9 Key Wrapping Algorithms...............................................................................................................30 9.1 Available in Approved Mode Operation..................................................................................30 9.2 Available in General Operation................................................................................................30 9.3 Examples..................................................................................................................................31 9.3.1 Key Wrapping using RSA................................................................................................31 9.3.2 Key Wrapping using AES................................................................................................31 9.3.3 JCE Key Wrapping using ElGamal..................................................................................32 9.3.4 JCE Key Wrapping using Camellia with padding............................................................32 10 Mac Algorithms.............................................................................................................................34 10.1 Available in Approved Mode Operation................................................................................34 10.2 Available in General Operation..............................................................................................34 10.3 Examples................................................................................................................................35 10.3.1 AES using CMAC – 64 bit.............................................................................................35 10.3.2 JCE HMAC-SHA256.....................................................................................................36 11 Message Digest Algorithms...........................................................................................................37 11.1

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    62 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us