본문 바로가기

Torch7를 사용하는 cpptorch의 Visual Studio 컴파일 방법 Torch7는 lua기반으로 되어 있는데 cpp에서 사용하려면 cpptorch라는 Wrapper를 이용해야 한다. 이 cpptorch를 가장 최근의 Torch7와 사용하기 위해서 약간의 에러 픽스가 필요하다. Torch7이 업데이트되면서 THNN 모듈이 빠졌기 때문에 본 포스팅에서는 합쳐서 컴파일하는 방식으로 진행한다. 먼저 3가지 파일을 다운받는다. https://github.com/torch/torch7 torch/torch7 http://torch.ch. Contribute to torch/torch7 development by creating an account on GitHub. github.com https://github.com/torch/nn torch/nn Contribute to tor.. 더보기
[OpenSSL] EVP 방식으로 OpenSSL 사용하기 2/2 EVP 방식으로 OpenSSL에서 RSA 키를 만들고 이것을 이용하여 사인과 검증을 해보자. RSA 만드는 방법 pkctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL); EVP_PKEY_keygen_init(pkctx); EVP_PKEY_CTX_set_rsa_keygen_bits(pkctx, 2048); EVP_PKEY_keygen(pkctx, &keypair); EVP_PKEY_CTX_free(pkctx); 키 생성부는 Init - Update - Final 구조로가 없는 것으로 보인다. 사인하는 방법 mctx = EVP_MD_CTX_new(); EVP_DigestSignInit(mctx, NULL, EVP_sha256(), NULL, keypair); EVP_Digest.. 더보기
[OpenSSL] EVP 방식으로 OpenSSL 사용하기 1/2 OpenSSL에서는 인터페이스가 규격화 된 최상위 API를 제공한다. 처음 접하는 사람들은 쉽게 접근할 수 있도록 배려한 것 같다. 참고로 EVP란 EnVeloPe 의 약자로 하위의 api를 포장했다는 의미가 있다. 예제를 보며 설명하겠다. void TestEVP_MessageDigest(const char *alg, const char *pP1, const char *pP2, const char *pP3) { EVP_MD_CTX *mctx; const EVP_MD *digest; digest = EVP_get_digestbyname(alg); unsigned char md[EVP_MAX_MD_SIZE]; unsigned int md_len; mctx = EVP_MD_CTX_new(); EVP_Diges.. 더보기