ASCII
const OSSL_DISPATCH provider_aes128ecb_functions[] = { /********* common function *********/ { OSSL_FUNC_CIPHER_NEWCTX, (void (*)(void))provider_aes128_ecb_cipher_generic_newctx }, { OSSL_FUNC_CIPHER_FREECTX, (void (*)(void))provider_aes128_ecb_cipher_generic_freectx }, { OSSL_FUNC_CIPHER_DUPCTX, (void (*)(void))provider_aes128_ecb_cipher_generic_dupctx }, /********* encrypt / dec..
OpenSSL Provider-Base이 과정에서 base는 Core에 Provider의 메타 데이터, 알고리즘 목록 제공, 상호작용을 제공한다.provider-base는 OpenSSL Core와의 상호작용을 위해 아래의 콜백 함수들을 구현해야 한다.provider_query : Provider에서 지원하는 기능 목록 제공provider_gettable_parames : Provider에 대한 메타데이터 정보에 대한 정의provider_get_parames : Provider에 대한 메타데이터(이름, 버전, 빌드 정보 등...) 제공prover_teardown : 사용한 자원의 반환 및 정리provider_query 함수의 경우 OpenSSL의 Provider를 보았을 때, 암복호화를 제외하고도 해시, ..
개요26년 3월경 e-MRAM 보안 통합칩의 AES 기능을 검증하는 과정에서 OpenSSL과 연동하여 OpenVPN으로 통신하는 환경을 구축하는 내용을 진행하여 정리해보고자 한다. e-MRAM 보안 통합칩: e-MRAM을 기반으로 하여 암호화를 지원하는 암호화 칩이다.PUF 기반으로 암호화를 수행하는 보안 칩으로 USB를 통해 데이터를 송수신하며, AES-128-ECB 암호화 방식을 지원한다.(편의상 이하 PUF칩이라는 용어를 사용한다.) 해당 프로젝트의 목적은 PUF 칩의 동작을 검증하는 일이었다. 검증을 위해 OpenVPN이 동작하고 있는 서버와 PUF칩을 사용하는 Clinet 간에 동작하는 것을 목표로 하였다. PUF칩이 정상적으로 암복호화가 이루어진다면, OpenSSL을 이용하여 통신하고 있는 서..
드라이버 코드를 분석하면서 유용한 글을 발견했다. Reference: https://emca.tistory.com/331 PCI 드라이버(PCI-Driver)1 PCI 드라이버의 구조 2가지 종류의 PCI 드라이버가 존재한다: 신식 (new-style) 드라이버는 장치를 검색 (probe) 하는 대부분의 과정을 PCI 레이어에게 넘겨주었고 장치의 온라인 삽입과 제거를 지원한emca.tistory.com
define과 관련된 내용을 보면서 문득 gcc를 이용해서 전처리 결과를 따로 볼 수 있다는 것이 생각났다.gcc를 이용하여, 전처리를 진행하고 결과의 의미를 알아보고자 한다.#define NUM 10int main(int argc, char** argv) { int a = NUM; int b = 5; int c = a + b; return 0;}간단한 예제 코드 이다. 매크로로 지정된 NUM과 이를 단순 변수에 저장, 연산을 진행한다.gcc를 이용하여 전처리만을 진행하는 것은 E 옵션을 이용해서 할 수 있다.gcc -E main.c -o pre.c 를 통해, 전처리 결과를 얻을 수 있다.# 0 "main.c"# 0 ""# 0 ""# 1 "/usr/include/stdc-predef..