An implementation of PKCS #12 password encryption/integrity modes. Both input and output are implemented.

A PKCS12 object may contain multiple authenticated safes (represented as PKCS12Safe objects). Each authenticated safe may have its own encryption method, and contains a number of bags (represented as instances of PKCS12Bag). Note: the methods and constructors that input a PKCS12 object do not automatically check the validity of the MAC. You need to explicitly call verify() to make this check.