전체 글

    ulimit 명령어와 Select, Poll 함수

    ulimit는 프로세스의 자원 한도를 설정하는 명령어로 Soft와 hard 두 가지로 분류됩니다. Soft 한도 - 새로운 프로그램을 생성하면 기본적으로 적용되는 한도 Hard 한도 - soft 한도에서 최대로 늘릴 수 있는 한도 Soft, Hard 한도를 조회하는 명령어는 다음과 같습니다. ulimit -Sa ulimit -Ha 여기서 open files와 max user processes를 보도록 하겠습니다. open files는 프로세스가 가질 수 있는 파일 수를 의미합니다. (소켓 포함) max user processes는 사용자가 사용 가능한 파일의 프로세스의 개수를 의미합니다. 다음과 같은 명령어로 파일과 프로세스 한도를 조정할 수 있습니다. ulimit -u 8192 -n 65536 이 명령..

    The file couldn’t be opened because you don’t have permission to view it.

    The file couldn’t be opened because you don’t have permission to view it. xcode가 파일에 접근할 권한이 없어서 발생하는 문제이다. 오류 해결 방법 시스템 환경설정 -> 보안 및 개인정보 -> 개인정보보호 -> 전체 디스크 접근 권한 -> xcode 추가

    호출 규약

    호출 규약 (Calling Convention) 함수 호출 규약(Calling Convention)이란 호출자(Caller)와 피호출자(Callee) 간에 함수를 호출하는 방식에 대한 약속이다. 함수 호출 규약은 인자 전달 방법, 인자 전달 순서, 스택 프레임 정리 방법에 따라 종류를 나눈다. 일반적으론 x64, x86을 기준으로 호출 규약을 나눈다. window x64에서는 x64-call을 사용하며 x86에서는 stdcall, cdecl, fastcall, thiscall 등을 사용한다. 다음은 x86 호출 규약 목록이다. cdecl 방식 cdecl 방식은 C/C++ 에서 기본적으로 사용되는 호출 규약이다. 인자는 오른쪽에서 왼쪽으로 전달되며 호출자가 스택을 정리한다. 예를 들어 다음과 같은 함수를 ..

    PQC Round 3

    2020년 7월 22일 NIST에서 PQC 3 Round 알고리즘을 발표했습니다. Finalists 알고리즘 7종, Alternate Candidate 알고리즘 8종입니다. 3 Round는 약 12 개월에서 18 개월 정도 진행될 예정이며 3차 PQC 표준화 회의는 2021년에 개최할 예정입니다. Finalists 알고리즘 7종 KEM 4종 (격자 3종, 부호 1종), Signature 3종 ( 격자 2종, 다변수 1종) Alternate Candidate 알고리즘 8종 KEM 5종 (격자 2종, 부호 2종, 아이소제니 1종), Signature 3종 (해시 1종, 다변수 1종, 영지식증명 1종) 일부 알고리즘은 연산이 효율적이고 짧은 암호문, 서명 값을 가지지만 공개키 크기가 매우 커 키 전송 성능이 ..

    PFX 인증서 생성

    샘플 파일 test.cer과 test.p12를 이용하여 PFX 인증서를 생성합니다. (공인인증서 der 파일과 key 파일을 적용해도 가능합니다.) package PFXTestPackage; import java.io.FileInputStream; import java.io.FileOutputStream; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.KeyStore; import java.security.Security; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import jav..

    BouncyCastle

    이클립스(Eclipse)에 Bouncycastle을 적용하는 방법 Bouncycastle에서 Java 버전에 맞는 파일을 다운로드합니다. https://www.bouncycastle.org/latest_releases.html bouncycastle.org Latest Java Releases Release 1.65 is now available for download. This release is primarily about the TLS APIs and the BCJSSE provider. API support has been added for specifying sessions on resumption, Ed25519/Ed448 is now supported for TLS and additional..

    구조체 메모리 할당

    구조체 메모리 할당에 대해서 특이한(?) 경험을 기록한다. 다음과 같이 배열을 멤버로 가지는 구조체를 생각하자. typedef struct st { unsigned char array[20]; }st; 이 구조체의 크기는 20바이트임을 예상할 수 있다. 만일, 이 구조체 멤버의 크기를 늘려 사용하려면 어떻게 해야 할까? 구조체를 변경하거나 새롭게 생성하지 않고.. st A; A.array[25] = 27;//stack corruption 현재 array가 20개의 방을 가지고 있다. 하지만 25번째 방에 값을 넣고자 한다. 이러한 모습은 범위를 벗어난 메모리 공간을 참조하기에 stack corruption이 발생한다. 어떻게 25번째 방에 값을 넣을 수 있을까? 이를 해결하기 위해 동적할당을 사용한다. ..