According to the spec:
Every call to C_Initialize should (eventually) be succeeded by a single call to C_Finalize.
https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/csd01/pkcs11-spec-v3.1-csd01.html#_Toc98177101
Each application’s call to C_Finalize should be preceded by a single call to C_Initialize
https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/csd01/pkcs11-spec-v3.1-csd01.html#_Toc98177102
C_Initialize should return CKR_CRYPTOKI_ALREADY_INITIALIZED if called twice, and C_Finalize should return CKR_CRYPTOKI_NOT_INITIALIZED if called without a corresponding C_Initialize call.
Currently, we just return CKR_OK in both cases.
According to the spec:
https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/csd01/pkcs11-spec-v3.1-csd01.html#_Toc98177101
https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/csd01/pkcs11-spec-v3.1-csd01.html#_Toc98177102
C_Initializeshould returnCKR_CRYPTOKI_ALREADY_INITIALIZEDif called twice, andC_Finalizeshould returnCKR_CRYPTOKI_NOT_INITIALIZEDif called without a correspondingC_Initializecall.Currently, we just return
CKR_OKin both cases.