NeoPG 0.0.6, GnuPG 2 ํฌํฌ, ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์ค€๋น„๋œ ํ”„๋กœ์ ํŠธ์˜ ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค ๋„ค์˜คPG, ์ „์ž ์„œ๋ช…, ํ‚ค ๊ด€๋ฆฌ ๋ฐ ๊ณต๊ฐœ ํ‚ค ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ๋„๊ตฌ ๊ตฌํ˜„์„ ํ†ตํ•ด GnuPG(GNU Privacy Guard) ๋„๊ตฌ ํ‚คํŠธ์˜ ํฌํฌ๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
NeoPG์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ์˜ค๋ž˜๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์œผ๋กœ ์ธํ•œ ์ฝ”๋“œ ์ •๋ฆฌ, C ์–ธ์–ด์—์„œ C++11๋กœ์˜ ์ „ํ™˜, ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์†Œ์Šค ํ…์ŠคํŠธ ๊ตฌ์กฐ ์ฒ˜๋ฆฌ ๋ฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ API ์ œ๊ณต์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์˜. ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๊ณต๊ธ‰ GPLv3 ๋Œ€์‹  ํ—ˆ์šฉ์ ์ธ BSD ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘์—๋Š” cmake ์–ด์…ˆ๋ธ”๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ์˜ ์ „ํ™˜๊ณผ Libgcrypt๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์œ„ํ•œ ๋‚ด์žฅ ํŒŒ์„œ ๋ฐ ์ฝ”๋“œ๋ฅผ libcurl ๋ฐ SQLite๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. NeoPG์—์„œ๋Š” ์žฅ๊ธฐ ์‹คํ–‰ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค gpg-agent, dirmngr(๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ฆฌ์ž) ๋ฐ scdaemon(์Šค๋งˆํŠธ ์นด๋“œ ๋ฐ๋ชฌ)์˜ ์‹œ์ž‘์ด ์ค‘์ง€๋˜์—ˆ์œผ๋ฉฐ, ๋Œ€์‹  ์ผํšŒ์„ฑ ๋ณด์กฐ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์‹คํ–‰๋˜์–ด ์ž‘์—… ์™„๋ฃŒ ํ›„ ์ฆ‰์‹œ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

NeoPG์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์€ libneopg ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜์–ด ํƒ€์‚ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋Š” libneopg ์œ„์— ๊ตฌํ˜„๋˜์–ด GnuPG์— ํฌํ•จ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ์œ ํ‹ธ๋ฆฌํ‹ฐ(gpg, gpgsm, gpgconf, gpgv, gpgtar ๋“ฑ)๋ฅผ Git ์Šคํƒ€์ผ ํ•˜์œ„ ๋ช…๋ น ๋ฐ ์ƒ‰์ƒ ์ถœ๋ ฅ ์ง€์›๊ณผ ํ•จ๊ป˜ ๋‹จ์ผ neopg ์‹คํ–‰ ํŒŒ์ผ๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. GnuPG 2์™€์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด "neopg gpg2" ๋ช…๋ น ๋‚ด์— ๋ ˆ์ด์–ด๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” gpg2 ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€์˜ ํ˜ธํ™˜์„ฑ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. gpg2๊ฐ€ neopg์— ๋Œ€ํ•œ ํ•˜๋“œ ๋งํฌ์ธ ๊ฒฝ์šฐ GnuPG 2์™€์˜ ๋ช…๋ น ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ ˆ์ด์–ด๊ฐ€ ์ž๋™์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด "ํŒจํ‚ท ๋คํ”„" ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Ubuntu 18.04์— ๋Œ€ํ•œ ์ง€์›์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Cmake ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Boost::format ๋Œ€์‹  fmtlib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ‚ค ์ €์žฅ์†Œ์— ๋Œ€ํ•œ OpenPGP ํŒŒ์„œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€