make inner class static
support checking for key usage type
support storing/generating key agreement states/secrets in the keystore