분류 전체보기

    인증서 관리 규격 - 발급/갱신/폐지

    PKI에서는인증기관,등록기관,그리고사용자간의각종인증서업무를처리하기위한표준적인 통신프로토콜이필요하다. 이를CMP(CertificateManagementProtocols)라하며,인증서발 급/갱신/폐지요청및응답처리에사용된다. 인증서관리프로토콜은PKI구성요소간의 온라인 상호연동뿐만아니라,상호인증하려는 두인증기관사이에서도 사용될수있다. 본 상세서를 지원하는 인증서 관리규격들은 다음의 표준을 준수한다. ■ RFC 4210 Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP) 인증서관리를 수행 PKI의 초기화와 사용자의 등록, 인증서 발급, 갱신, 폐지 등 PKI 관리를 위한 방안을 기술하 고, 이를 구현하기 위한 메시지 구문을 ..

    인증서(Certificate) 규격

    인증서(certificate):인증기관의고유키또는비밀키를사용하여변조를불가능하게 한개체의데이터. 기본 필드 인증서 기본필드는 인증서의 버전, 발급자, 유효기간 등 인증서의 기본 정보를 나타내며, 아래 정의된 기본필드는 행정전자서명 인증서에 모두 포함되어야 한다. 또한, 행정전자서명 인증서를 처리하는 모든 소프트웨어는 아래에 명시된 기본 필드를 모두 처리할 수 있어야 한다. 행정전자서명 인증서 기본필드는 최상위인증기관, 인증기관, 가입기관 모두 공통된 영역을 사용하며, 다음과 같이 정리할 수 있다. 등록기관, OCSP서버, TSA 서버 인증서는 가입기 관과 동일하므로 별도로 표현하지 않는다. ■ 버전(version) 인코딩된 인증서의 버전. 행정전자서명인증체계에서 사용되는 인증서는 버전3을 이용하며, 이 값..

    Kotlin 자료형 검사하고 변환하기(?. !! ?:)

    1. null 허용 변수 검사하기 코틀린은 변수를 사용할 때 반드시 값이 할당되어 있어야 한다는 원칙이 있다. 단, ? 기호를 사용하면 null 허용 변수를 만들 수 있다. ? (널 허용 변수) 를 사용하기 위해서는 null을 검사하고 처리하는 방법을 고려해야 한다. null 변수를 읽으면(참조하면) NPE 에러가 발생하기 때문이다. ?. (세이프콜) 변수를 검사하고 null이 아니면 접근하여 값을 읽고(왼쪽식을 그대로 실행), null이면 해당변수를 참조(NPE발생)하지 않고 null을 안전하게 호출 !! (non-null 단정기호) 변수에 할당된 값이 무조건 null이 아님을 단정하고 컴파일러가 null검사 없이 무시함 컴파일은 잘 수행되지만 나중에 실행시 NPE 발생 ?: (엘비스 연산자) 변수를 ..

    [Kotlin 객체지향 (4)] 프로퍼티(지연초기화, 위임)와 정적변수(Companion 객체, 최상위함수, object 객체)

    Companion 클래스를 정의할 때 변수나 메서드를 정적 멤버로 정의하면 객체를 생성하지 않고 사용할 수 있다. Java에서는 static을 사용하는데 Kotlin은 companion 객체를 사용한다. Companion 멤버는 객체 생성 없이 클래스의 이름으로 접근해서 사용한다. Kotlin에서 Java의 static 멤버 사용은 다른 점이 없다. 만약 Kotlin에서 정의한 Companion 멤버 중 Java에서 사용할 수 있도록 하기 위해서는 @JavaStatic 으로 정의해야 한다. 리플렉션 프로그램 실행 중에 프로그램의 구조(객체, 함수, 프로퍼티)를 분석하는 기법 객체의 클래스 타입, 클래스 정보, 생성자 정보, 프로퍼티 정보 등을 실행 중에 파악할 수 있다.

    [Kotlin 객체지향 (3)] Data/ Sealed/ Enum /Inner /중첩 Class

    Data Class DataClass는 매개체의 데이터를 관리하는 용도로 사용하는 클래스이다. abstract, open, sealed, inner 클래스로 정의할 수 없다 반드시 주 생성자를 가지고 있어야 한다. Data Class 함수 Data Class 는 개발자의 개발 편리성을 위해 몇 가지 메서드가 자동으로 구현된다. equals : 객체가 가지고 있는 변수를 모두 비교하는 메서드 hashCode : 객체를 구분하기 위한 고유한 정수값 copy : 객체를 복제하는 메서드 toString : 객체가 가지고 있는 변수의 값을 출력 componentN : 객체 분해 data class TestClass2(var a1:Int, var a2:Int){ var a3:Int = 0 init { println..

    [Kotlin 객체지향 (2)] 추상클래스(Abstract Class)와 인터페이스(Interface)

    추상클래스 vs 인터페이스 공통점 설계 명세와 공통의 기능을 구현 차이점 추상클래스 → (상속) → 하위클래스 일반적인 객체를 생성하는 방법으로 인스터스화 하는 대신 상속받아 사용 (상속을 위해 open키워드를 사용할 필요 없음) 하위클래스는 상속을 하나만 허용 일반 프로퍼티/메서드에는 초기값 저장할 수 있고, abstract 키워드 붙은 추상 프로퍼티/메서드는 하위 클래스에서 재정의해서 사용해야함) 상위클래스가 정의한 내용이 불완전하면 상속받은 하위클래스도 그대로 영향을 받음 인터페이스 → (구현) → 구현클래스 인터페이스는 클래스가 아니라 상속받아 사용하는것 아니고 구현함 상속은 하나면 허용했으나, 인터페이스는 원하는 만큼 구현클래스에 붙여서 필요한 메서드를 구현해내면 됨 프로퍼티에 상태정보를 저장할..