Revision history for perl module Crypt::PKCS10

1.0 2014-08-20

 - Initial Version

1.1 2015-10-09

 - Allow same OID elements in RDNs
 - Support for all DirectoryStrings
 - New accessor method: organizationName 

1.2 2015-11-13

 - Add generic method extensionValue
 - Ommit unknown or damaged extensions

1.3 2015-11-17

 - Experimental Perl features removed
 - Refactored building process

1.4_01 2016-01-14

- Find PEM anywhere
- Support repeated attributes
- Various crashes, internal optimizations
- More OIDs
- Access methods: subject, subjectAltName, extensions
- Generate access methods for unknown OIDs in DNs at runtime
- Add extractCSR method to get CSR in binary or PEM
- subjectPublicKey option to extract in PEM format
- Convert IP addresses to strings
- Convert basicConstraints to string
- Add registerOID to allow extraction of simple custom OIDs
- More tests
- Improve documentation
- Add setAPIversion, regularize OID names in V1
- For API V1, attributes method returns names or values of attributes (except extensions)
- Improve build: Use Dist::Zilla, autogenerate README,LICENE,META,Makefile.PL
- Generate & ship Commitlog from git

1.4_02

- For API V1, omit space in key usage list
- Look for policy identifier names in all tables
- Decode certificatePolicyIdentifier, add related OIDs
- Avoid building un-necessary ASN.1 parsers
- Fully decode ApplicationCertPolicies for API V1
- Check enhanced key usage before registering OID
- Add name2oid to API
- Internal cleanup  & error reporting improvements

1.4_03

- certificateTemplate ASN correction: MajorVersion is optional
- certificateTemplate returns id as a name if OID registered (API V1)
- handle some malformed requests better
- decode more M$ attributes, correct some.
- Don't croak() on missing attributes
- Convert BMPStrings from UCS2 to Perl (printable) strings
- Rework special OID handling to be scalable & cover attributes
- Don't croak in new.  (API V1) Always return undef.  Class method error() returns detail.
- Return reasonable strings from attributes('name') and extensionValue('name',1)
- Overload object so print can produce a useful dump.
- Handle null subject
- More enhanced key usage OIDs
- keyUsage returns array rather than comma separated string (API v1)
- Cleaned up POD
- Do a better job with error reporting
- Validate PEM's Base64 encoding.
- Ensure that only the first PEM certificate is extracted.
- Improve tests
- Enable (internal) custom formatters for extensions and attributes.
- Return basicConstraints as a hash
- Accept numeric OIDs as arguments to extensionValue, extensionPresent and attributes.

1.4_04
 - Build Kwalitee issues: Minimum Perl version, Repo location, and Provides in META
 - Fix test issues due to hash randomization on newer Perl versions.

1.4_05
 - Sign distribution kits
 - Remove execute permissions from text files
 - Generate Markdown format README for github
 - Use Pod::Weaver to manage authorship, copyright from dist.ini
 - Add prerequisites display test
 - Validate with perlcritic, pod syntax

1.5
 - Uncoordinated release of 1.4_04

1.6
 - Support some EC OIDs

1.7
 - ECC test doesn't require Data::Dumper
 - Support more EC OIDs
 - Add DSA OIDs
 - Add subjectPublicKeyParams(), which provides some description of the key
 - Add certificationRequest and signature(1) to enable verification of CSR signatures
 - Add signatureParams()
 - Add signature(2) to extract ECDSA signature components.
 - Fix and extend registerOID, add tests.
 - Add examples/ directory with sample code
 - Verify signature of CSRs in new() by default.  Add checkSignature().
 - Optionally allow invalid base64 character in PEM data.
 - Allow new() from filename and options from hashref.

1.7_01
 - Address CPANTS failures due to bugs in old versions of Crypt::PK::ECC
 - Add explicit version dependency for CryptX, the parent distribution.
 - For insurance, add explicit version requirements for the other modules we depend on.
 - Add getAPIversion
 - Make stringify use an overloadable method so it can be extended if subclassed.
 - Correctly parse DER for expected length when removing padding.

1.8
 - When returning PEM, ensure max line width of 64 to satisfy RFC 7468, not 76 of MIME.
 - Fix test failures on some editions of 5.8.8 due to Perl bug 39185.  (Tripped in test, not module.)

1.8001
 - Makefile.pl: Diagnose old OpenSSL versions that fail signature verification and discard automated tests in that case.
 - Print full OpenSSL configuration during automated testing.
 - Require CryptX with version fix.
 - Silence test warning if openssl command is missing.
 - No changes to functional code.

1.8002
 - Cosmetic: wrap long form OpenSSL config in test
 - Make RSA, DSA and ECC support optional.  Warn during install none are present or any don't work.
 - Signature verification requires the corresponding module, as does decoding ECC public keys.
 - subjectPublicKeyParams and checkSignature set error() for unsupported key type or hash.
 - Clean up carp/croak, especially where crept into evals.
 - Provide instance method for error.
 - Fix stringify's interactions with API v0.
 - Add binaryMode and PEMonly options to provide finer grained control of formats

1.8002_01
 - Filter OpenSSL's 'WARNING: can't open config file' messages.
 - Add dieOnError option to new()
 - Report undefined $csr gracefully
 - API v0 tests should not try to verify a signature.
 - new() in void context will generate an exception.

1.9 2018-03-03T14:16:54Z

 - Accept trailing whitespace after header line
 - Convert build process to Minilla
 - Add license to code file; fix Kwalitee

__END__