PrivateKey
PrivateKey (개인 키)
개인 키를 나타내는 인터페이스입니다. 이 인터페이스의 목적은 모든 개인 키 인터페이스를 하나로 묶고(그룹화) 타입 안전성을 제공하는 것입니다.
본문
PrivateKey는 모든 개인 키 인터페이스의 공통 상위 인터페이스입니다. 전문화된 개인 키 인터페이스들은 이 인터페이스를 확장합니다. 예를 들어 java.security.interfaces 패키지의 DSAPrivateKey, RSAPrivateKey, RSAPrivateCrtKey, ECPrivateKey, EdECPrivateKey, XECPrivateKey 등이 있습니다.
PrivateKey는 Key와 java.security.Destroyable을 상속합니다. Key가 정의하는 메서드를 통해 알고리즘 이름(getAlgorithm())과 인코딩된 형태(getEncoded()), 인코딩 형식(getFormat())을 얻을 수 있습니다. 개인 키는 주로 PKCS#8 형식으로 인코딩됩니다.
구현은 민감한 키 정보가 파괴·소거되거나, 불변인 경우 참조되지 않도록 기본 destroy와 isDestroyed 메서드를 오버라이드해야 합니다. 또한 PrivateKey가 Serializable이므로, 파괴된 키가 직렬화되지 않도록 직렬화를 오버라이드해야 합니다.
인코딩된 개인 키는 절대 신뢰되지 않은 환경에 노출되어서는 안 되는 민감한 정보입니다.