1cd9f5e17b
Motivation: Subclasses of `OpenSslKeyMaterial` implement `ReferenceCounted`. This means that a new object should have an initial refcount of 1. An `OpenSslPrivateKey.OpenSslPrivateKeyMaterial` object shares its refcount with the enclosing `OpenSslPrivateKey` object. This means the enclosing object's refcount must be incremented by 1 when an instance of `OpenSslPrivateKey.OpenSslPrivateKeyMaterial` is created. Otherwise, when the key material object is `release()`-ed, the refcount on the enclosing object will drop to 0 while it is still in use. Modification: - Increment the refcount in the constructor of `OpenSslPrivateKey.OpenSslPrivateKeyMaterial` - Ensure we also always release the native certificates as well. Result: Refcount is now correct.