From ff78754dddd11810651d43070b8191fdb46f8eb1 Mon Sep 17 00:00:00 2001 From: TLINDEN Date: Sun, 24 Nov 2013 19:59:55 +0100 Subject: [PATCH] added raw library encryption test with static keys, cipher and message --- libpcp/crypto.c | 5 +- man/pcp1.1 | 2 +- tests/Makefile.am | 10 +++- tests/Makefile.in | 29 +++++++++-- tests/bart.pub | 48 +++++++++--------- tests/gcc-compilefarm/Makefile | 90 ---------------------------------- tests/gencheader.c | 36 ++++++++++++++ tests/gentestkeys.sh | 2 + tests/key-alicia-pub | 48 +++++++++--------- tests/key-alicia-sec | 36 +++++++------- tests/key-bobby-pub | 48 +++++++++--------- tests/key-bobby-sec | 36 +++++++------- tests/keys.cfg | 8 +-- tests/static.h | 53 ++++++++++++++++++++ tests/statictest.c | 20 ++++++++ tests/unittests.cfg | 8 +++ tests/unknown1 | 22 ++++----- tests/unknown2 | 30 ++++++------ tests/unknown4 | 4 +- tests/unknown5 | 4 +- 20 files changed, 297 insertions(+), 242 deletions(-) delete mode 100644 tests/gcc-compilefarm/Makefile create mode 100644 tests/gencheader.c create mode 100644 tests/static.h create mode 100644 tests/statictest.c diff --git a/libpcp/crypto.c b/libpcp/crypto.c index 29fedbd..6d1661e 100644 --- a/libpcp/crypto.c +++ b/libpcp/crypto.c @@ -85,10 +85,7 @@ unsigned char *pcp_box_encrypt(pcp_key_t *secret, pcp_pubkey_t *public, unsigned char *message, size_t messagesize, size_t *csize) { - //unsigned char *nonce = pcp_gennonce(); - - unsigned char *nonce = ucmalloc(crypto_secretbox_NONCEBYTES); - memset(nonce, 1, crypto_secretbox_NONCEBYTES); + unsigned char *nonce = pcp_gennonce(); unsigned char *cipher; diff --git a/man/pcp1.1 b/man/pcp1.1 index 826ee0f..475492a 100644 --- a/man/pcp1.1 +++ b/man/pcp1.1 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PCP1 1" -.TH PCP1 1 "2013-11-19" "PCP 0.1.5" "USER CONTRIBUTED DOCUMENTATION" +.TH PCP1 1 "2013-11-24" "PCP 0.1.5" "USER CONTRIBUTED DOCUMENTATION" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/tests/Makefile.am b/tests/Makefile.am index 053d3ac..11d7a0d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -20,7 +20,15 @@ # AM_CFLAGS = -I../include/pcp -Wall -g -check_PROGRAMS = col invalidkeys pwhashes +check_PROGRAMS = col invalidkeys pwhashes gencheader statictest + +gencheader_LDADD = ../libpcp/.libs/libpcp1.a +gencheader_SOURCES = gencheader.c + +statictest_LDADD = ../libpcp/.libs/libpcp1.a +statictest_SOURCES = statictest.c + + col_LDADD = ../libpcp/.libs/libpcp1.a col_SOURCES = collisions.c ../src/compat_getopt.c diff --git a/tests/Makefile.in b/tests/Makefile.in index 71adbfc..0ce8410 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -70,7 +70,8 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -check_PROGRAMS = col$(EXEEXT) invalidkeys$(EXEEXT) pwhashes$(EXEEXT) +check_PROGRAMS = col$(EXEEXT) invalidkeys$(EXEEXT) pwhashes$(EXEEXT) \ + gencheader$(EXEEXT) statictest$(EXEEXT) subdir = tests DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp @@ -89,6 +90,9 @@ CONFIG_CLEAN_VPATH_FILES = am_col_OBJECTS = collisions.$(OBJEXT) compat_getopt.$(OBJEXT) col_OBJECTS = $(am_col_OBJECTS) col_DEPENDENCIES = ../libpcp/.libs/libpcp1.a +am_gencheader_OBJECTS = gencheader.$(OBJEXT) +gencheader_OBJECTS = $(am_gencheader_OBJECTS) +gencheader_DEPENDENCIES = ../libpcp/.libs/libpcp1.a am_invalidkeys_OBJECTS = invalidkeys.$(OBJEXT) invalidkeys_OBJECTS = $(am_invalidkeys_OBJECTS) invalidkeys_DEPENDENCIES = ../libpcp/.libs/libpcp1.a ../src/keyprint.o \ @@ -96,6 +100,9 @@ invalidkeys_DEPENDENCIES = ../libpcp/.libs/libpcp1.a ../src/keyprint.o \ am_pwhashes_OBJECTS = pwhashes.$(OBJEXT) pwhashes_OBJECTS = $(am_pwhashes_OBJECTS) pwhashes_DEPENDENCIES = ../libpcp/.libs/libpcp1.a +am_statictest_OBJECTS = statictest.$(OBJEXT) +statictest_OBJECTS = $(am_statictest_OBJECTS) +statictest_DEPENDENCIES = ../libpcp/.libs/libpcp1.a DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/pcp depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles @@ -109,9 +116,11 @@ CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ -SOURCES = $(col_SOURCES) $(invalidkeys_SOURCES) $(pwhashes_SOURCES) -DIST_SOURCES = $(col_SOURCES) $(invalidkeys_SOURCES) \ - $(pwhashes_SOURCES) +SOURCES = $(col_SOURCES) $(gencheader_SOURCES) $(invalidkeys_SOURCES) \ + $(pwhashes_SOURCES) $(statictest_SOURCES) +DIST_SOURCES = $(col_SOURCES) $(gencheader_SOURCES) \ + $(invalidkeys_SOURCES) $(pwhashes_SOURCES) \ + $(statictest_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -234,6 +243,10 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -I../include/pcp -Wall -g +gencheader_LDADD = ../libpcp/.libs/libpcp1.a +gencheader_SOURCES = gencheader.c +statictest_LDADD = ../libpcp/.libs/libpcp1.a +statictest_SOURCES = statictest.c col_LDADD = ../libpcp/.libs/libpcp1.a col_SOURCES = collisions.c ../src/compat_getopt.c invalidkeys_LDADD = ../libpcp/.libs/libpcp1.a \ @@ -289,12 +302,18 @@ clean-checkPROGRAMS: col$(EXEEXT): $(col_OBJECTS) $(col_DEPENDENCIES) $(EXTRA_col_DEPENDENCIES) @rm -f col$(EXEEXT) $(LINK) $(col_OBJECTS) $(col_LDADD) $(LIBS) +gencheader$(EXEEXT): $(gencheader_OBJECTS) $(gencheader_DEPENDENCIES) $(EXTRA_gencheader_DEPENDENCIES) + @rm -f gencheader$(EXEEXT) + $(LINK) $(gencheader_OBJECTS) $(gencheader_LDADD) $(LIBS) invalidkeys$(EXEEXT): $(invalidkeys_OBJECTS) $(invalidkeys_DEPENDENCIES) $(EXTRA_invalidkeys_DEPENDENCIES) @rm -f invalidkeys$(EXEEXT) $(LINK) $(invalidkeys_OBJECTS) $(invalidkeys_LDADD) $(LIBS) pwhashes$(EXEEXT): $(pwhashes_OBJECTS) $(pwhashes_DEPENDENCIES) $(EXTRA_pwhashes_DEPENDENCIES) @rm -f pwhashes$(EXEEXT) $(LINK) $(pwhashes_OBJECTS) $(pwhashes_LDADD) $(LIBS) +statictest$(EXEEXT): $(statictest_OBJECTS) $(statictest_DEPENDENCIES) $(EXTRA_statictest_DEPENDENCIES) + @rm -f statictest$(EXEEXT) + $(LINK) $(statictest_OBJECTS) $(statictest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -304,8 +323,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/collisions.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compat_getopt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gencheader.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/invalidkeys.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pwhashes.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statictest.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< diff --git a/tests/bart.pub b/tests/bart.pub index 7bc6f71..ff2b1c2 100644 --- a/tests/bart.pub +++ b/tests/bart.pub @@ -3,33 +3,33 @@ Cipher: CURVE25519-ED25519-SALSA20-POLY1305 Owner: Bart Mail: bart@local - Key-ID: 0x9AD180B48F2746E7 - Public-Key: 0$U$)i[>V06d$n&N6ehq2.#]UW$MQy8-MrNt!j/uu&Qfb - Creation Time: 2013-11-19T14:56:12 - Checksum: 06:95:B5:78:15:E4:F7:DB:34:B2:02:ED:B5:3F:C9:6D - 4F:20:1F:94:19:27:32:31:7C:E2:8F:A4:C4:30:29:12 - Serial Number: 0xEBBF8898 + Key-ID: 0x8C26BF8A5F2C72E8 + Public-Key: 1gxyGI2IKAa=A*)lJG78tgkw350bPzBaCtxH%G6ZbldYz + Creation Time: 2013-11-24T19:39:00 + Checksum: FE:EC:88:38:A1:4F:7E:1B:BB:05:95:5E:81:58:DF:24 + 2F:CA:8A:61:EE:6B:F4:13:AE:53:5C:BC:68:AC:AC:E5 + Serial Number: 0xB0E778FA Key Version: 0x00000004 Random Art ID: +----------------+ - | o | - | . + | - |. . . . . | - | o . . | - |= . . . | - | * o . | - |. . . | | | + | | + | | + | . . | + | . . . + . | + |. . .. + o | + |. .o o o | + | ..o.. . | +----------------+ -0$U$)i[>V06d$n&N6ehq2.#]UW$MQy8-MrNt!j/uu]Y@S75-O9Mv]$?.q^!NtEu4[3ULQ*3 -Vo-nB)uSVbsk*VBo0GfGcp5NMsb^MqUj3:(i8nz(cq3H6.w60rb[8w#)?kG=ixxk.XFGa/pI9%^px=>Gl+ou22k)0+pTT*S6#IoIK3Ix#)L -Pr3<4W!(KgAU5yvR/Ep]g.t):??2QC*!fRka&uG!ojG2zvQTq0kX$vGvqC}NxLDX7cR3T@/ -ldGZoc+WNkcGX0k}d2Kh?H.ra6J=^vMW(p>Fy}FnM)ce@b>E*/EsTFQ}C4J&mpjX.KU7#?j -OZKaHWA76Y>1VHsv0H9BV?cKr9J.r3*r9ps$j-9>p1t6I=F3*xOLyH*K2Y7sL-vBz -It/w[aU0$Q]IkMbwwfEPN-vrd/sM/HXLSfDlHAMJyes5iOvQTq0kX$vGvqC}CVj3!OnvaP.Rui86&vy^lU9sE^G$1&-]iQ@Q^T$TB{h}79MD!oL}&9:5wc/]4ZwHW}r0g>/t&v +^2Ic+6Cpm-0QxL*QeL[q#CLn!g9{mLWs&gdse50@@r308!$I.#G=q1Hd6l}tZG} ------ END PCP PUBLICKEY ------ diff --git a/tests/gcc-compilefarm/Makefile b/tests/gcc-compilefarm/Makefile deleted file mode 100644 index 38201c0..0000000 --- a/tests/gcc-compilefarm/Makefile +++ /dev/null @@ -1,90 +0,0 @@ -PREFIX = $(HOME)/usr -BUILD = $(HOME)/build - -GITSODIUM = https://github.com/jedisct1/libsodium.git -GITPCP = https://github.com/TLINDEN/pcp.git - -DIRCFG = Config-General-2.52 -DIRTIE = Tie-IxHash-1.23 -DIRYAM = YAML-0.84 - -GZCFG = $(DIRCFG).tar.gz -GZTIE = $(DIRTIE).tar.gz -GZYAM = $(DIRYAM).tar.gz - -CPANCFG = http://search.cpan.org/CPAN/authors/id/T/TL/TLINDEN/$(GZCFG) -CPANTIE = http://search.cpan.org/CPAN/authors/id/C/CH/CHORNY/$(GZTIE) -CPANYAM = http://search.cpan.org/CPAN/authors/id/M/MS/MSTROUT/$(GZYAM) - -HAVEPERL = $(PREFIX)/_haveperl -HAVESODIUM = $(PREFIX)/_havesodium - -SRCSODIUM = $(BUILD)/libsodium -SRCPCP = $(BUILD)/pcp - -all: prepare fetch config-sodium compile-sodium install-sodium config-pcp compile-pcp install-pcp test-pcp - @echo done - - -prepare: - if test ! -d $(PREFIX); then mkdir -p $(PREFIX); fi - if test ! -d $(BUILD); then mkdir -p $(BUILD); fi - -perl: prepare - if test ! -f $(HAVEPERL); then \ - cd $(BUILD) && wget $(CPANCFG) && gunzip -c $(GZCFG) | tar -x -f -; \ - cd $(BUILD)/$(DIRCFG) && perl Makefile.PL PREFIX=$(PREFIX) && make && make install; \ - cd $(BUILD) && wget $(CPANTIE) && gunzip -c $(GZTIE) | tar -x -f -; \ - cd $(BUILD)/$(DIRTIE) && perl Makefile.PL PREFIX=$(PREFIX) && make && make install; \ - cd $(BUILD) && wget $(CPANYAM) && gunzip -c $(GZYAM) | tar -x -f -; \ - cd $(BUILD)/$(DIRYAM) && perl Makefile.PL PREFIX=$(PREFIX) && make && make install; \ - touch $(HAVEPERL); \ - fi - - -fetch: prepare - if test ! -d $(SRCSODIUM); then \ - cd $(BUILD) && git clone $(GITSODIUM); \ - else \ - cd $(SRCSODIUM) && git pull; \ - fi - if test ! -d $(SRCPCP); then \ - cd $(BUILD) && git clone $(GITPCP); \ - else \ - cd $(SRCPCP) && git pull; \ - fi - -config-sodium: - if test ! -f $(HAVESODIUM); then \ - cd $(SRCSODIUM) && ./autogen.sh; \ - cd $(SRCSODIUM) && ./configure --prefix=$(PREFIX); \ - touch $(HAVESODIUM); \ - fi - -config-pcp: - cd $(SRCPCP) && ./configure --prefix=$(PREFIX) --with-libsodium=$(PREFIX) - -compile-sodium: - if test ! -f $(HAVESODIUM); then \ - cd $(SRCSODIUM) && make; \ - fi - -compile-pcp: - cd $(SRCPCP) && make - -install-sodium: - if test ! -f $(HAVESODIUM); then \ - cd $(SRCSODIUM) && make install; \ - fi - -install-pcp: - cd $(SRCPCP) && make install - -clean: - cd $(SRCSODIUM) && make clean - cd $(SRCPCP) && make clean - rm -rf $(PREFIX) - -test-pcp: perl - ln -sf $(PREFIX)/share/perl/5.10.1 $(SRCPCP)/tests/lib - cd $(SRCPCP) && make test diff --git a/tests/gencheader.c b/tests/gencheader.c new file mode 100644 index 0000000..de2326e --- /dev/null +++ b/tests/gencheader.c @@ -0,0 +1,36 @@ +#include + +void pr(char *var, unsigned char *d, size_t len) { + printf("size_t %s_len = %ld;\n", var, len); + printf("unsigned char %s[%ld] = {\n", var, len); + size_t i; + for(i=0; isecret, 32); + pr("public_a", a->public, 32); + pr("secret_b", b->secret, 32); + pr("public_b", b->public, 32); + pr("message", m, 12); + pr("nonce", n, 24); + pr("cipher", &c[24], clen - 24); + + return 0; +} diff --git a/tests/gentestkeys.sh b/tests/gentestkeys.sh index 5b1a183..6a29c19 100755 --- a/tests/gentestkeys.sh +++ b/tests/gentestkeys.sh @@ -54,4 +54,6 @@ idalicia = $ida mailbobby = bobby@local mailalicia = alicia@local" > keys.cfg +./gencheader > static.h + rm -f vxxx diff --git a/tests/key-alicia-pub b/tests/key-alicia-pub index cad8948..942cd3e 100644 --- a/tests/key-alicia-pub +++ b/tests/key-alicia-pub @@ -3,33 +3,33 @@ Cipher: CURVE25519-ED25519-SALSA20-POLY1305 Owner: Alicia Mail: alicia@local - Key-ID: 0x23E0082C8250DB56 - Public-Key: 1j-}eBc7.!-B{7%2E -4kNwnRosYGf:r/v}/uKOROHY&elN9jI+.GcW2m(phVP#E04#Sxrhrbt!6F@cCNp.oGY. -7]cf{>bclF.g>i=X8Ah&$g6H(O1dkN[GnOIYH)h^5y!@lb -xCtFZPGSKsnAtyFqqBsTr/UE-ye+GgMDXq>VC63ao(=%BvqGT/x<VJ)W1*}v9oc&mf2HN++3.wU -Z$.?f+O(WLGGusCX&PG>[rsKPN5&s=Awd:dsWX=DxCkcu?IeDj:5%BZ/j+fvAaCTTvJ1>l{ -dAjEsJ$[aj:Ot3Q?>-pgNxsmT7t)6r<-rpXf7vinEyO>QUXBeuwEwjzL&}yOrOw6Q>ezh?$ -VF&-]npg6giDMi/x}!uXsbctS&VaO]98RT+%Vn38q)mwOxClAjSeu@++t[1s9e7lTbQ{l(F -P{N#?i6+XygES#Ki5i&XgbQ:NlnZU30@@r308!.(}V3P@1JR#>Y8R*h +1eRhFt(S$Aj[MWvNqYUgL(Mfpe86usIa9bvMwFc/7^R<>]u#!:jIb>^+HObot$n)mmc+r:n +}14[Zcddn*^b::? +%SZKTmRJYshko/&>x<*o77i[XM3W^-(OEt>6IvJkr]D<&D4cN?z.&Gl//X/D[KsAOUwlMLz +fCSdcJ@a>wDHDFwj@M!RyQo.OT5jB0C5^&1J[>}d5bBR}lYwK+rlZfP&yme.D}}vxg6SW^U +U$(/JeTC(w6t.*v9LxYl>7kQ^W)!sN5pBP+P(eVO)5Wu7vqGT/x<4zpJbh{}Smh5R?}42cWM@YOy+P2$/+Z#d=11b)8u]L[rh]7!DJglxt=- +E=o)OI1s)g(rbpa8I{AJKG[nkxhVzf(j}!tgtaLm7t]B-3=tBMsTL$Q27$%n+wm +72F):2ctn)*?IOe64&^>h={:UX7fKdj{myaS[o +l>o*<]dLqBf/R6Bgd1q!mLWv>lPmEm0@@r308!$I.VfVp1wc4--q/(r ------ END PCP PUBLICKEY ------ diff --git a/tests/key-alicia-sec b/tests/key-alicia-sec index 0823cff..41858e1 100644 --- a/tests/key-alicia-sec +++ b/tests/key-alicia-sec @@ -1,24 +1,24 @@ ----- BEGIN PCP SECRET KEY ----- Generated by: Pretty Curved Privacy Version 0.1.5 Cipher: CURVE25519-ED25519-SALSA20-POLY1305 - Key-ID: 0x23E0082C8250DB56 - Creation Time: 2013-11-19T14:56:11 - Serial Number: 0xC82855BB + Key-ID: 0x518602BB8F2D8C7F + Creation Time: 2013-11-24T19:38:59 + Serial Number: 0x49B690C5 Key Version: 0x00000004 -1j-}eBc7.!-B{7%2ErvJhcifZHSec%lWfh#MRFH -zliU2nzAK^JsWOnPXn<7fm@^FT&}@4g)AWW$O$O>4kNwnRosYG8/:Nn.^v}oixcz?Ff*t{R -Ff}J]4J)]a{l^ok)SLd0WSQS=TiBsSJQ3O{-fVlp -rs{mfZIC>/3^l+T}))0mG(ui>0y -bJXO?#7CN@H1G7giGKS5T69Qq!4M[p>xn4@u/q*3N>Ml8[CTldWv}/uKOROHY&elN9jI+.G -cW2m(phVP#E04#Sxrhrbt!6F@cCNp.oGY.7]cf{>bclF.g>i=X8Ah&$g6H(O1dkN[GnOIYH)h^5y!@lbxCtFZPGSKsnAtyFqqBsTr/UE-ye+GgMDXq ->VC63ao(=%BvqGT/x<VJ)W1*}v9oc&mf2HN++3.wUZ$.?f+O(WLGGusCX&PG>[rsKPN5&s=Awd: -dsWX=DxCkcu?IeDj:5%BZ/j+fvAaCTTvJ1>l{dAjEsJ$[aj:Ot3Q?>-pgNxsmT7t)6r<-rp -Xf7vinEyO>QUXBeuwEwjzL&}yOrOw6Q>ezh?$VF&-]npg6giDMi/x}!uXsbctS&VaO]98RT -+%Vn38q)mwOxClAjSeu@++t[1s9e7lTbQ{l(FP{N#?i6+XygES#Ki5i&XgbQ:NlnZU30rr9 -108!.(}V3P@1JR#>Y8R*h +1eRhFt(S$Aj[MWvNqYUgL(Mfpe86usIa9bvMwFc/7YWNWenlDKe}(VQ/s$k>o^GU#w}zX3= +rBetin9dCRA[]K]u#!:jIb>^+HObot$n)mmc+r:n}14[Zcddn*YeWrQP[h1^k(qBeTLOaPu +s-O0DqovBY*z=5R^{3zjI{g[+3[fISYF!ob)X3lR[9AwygvJsm*!A=}gmEY>OUxP@Z?Fsx6fa{br>VG3A]P4X +vT%6^J31QsR+hG*U2V%:ex7j}5wyWf{frah/+j:R}{]h3H@Y$vmv}/uKAjgTDFi}ApL/jtC +[47Yg8Rx#$)%tEdZp-Utr0(jI[%%jWp)pt0u+ys-SF.j-oM(RKNiE:#[v*Bj+8&JH2rQ3EB +CDs*J:?%SZKTmRJYshko/&>x<*o77i[XM3W^-(OEt +>6IvJkr]D<&D4cN?z.&Gl//X/D[KsAOUwlMLzfCSdcJ@a>wDHDFwj@M!RyQo.OT5jB0C5^& +1J[>}d5bBR}lYwK+rlZfP&yme.D}}vxg6SW^UU$(/JeTC(w6t.*v9LxYl>7kQ^W)!sN5pBP ++P(eVO)5Wu7vqGT/x<4zpJbh{}Smh5R?}42cW +M@YOy+P2$/+Z#d=11b)8u]L[rh]7!DJglxt=-E=o)OI1s)g(rbpa8I{AJKG[nkxhVzf(j}! +tgtaLm7t]B-3=tBMsTL$Q27$%n+wm72F):2ctn)*?IOe64&^>h={:UX7fKdj{myaS[ol>o*<]dLqBf/R6Bgd1q!mLWv>lPmEm0rr9 +108!$I.VfVp1wc4--q/(r ------ END PCP SECRET KEY ------ diff --git a/tests/key-bobby-pub b/tests/key-bobby-pub index a56525a..1ec8c45 100644 --- a/tests/key-bobby-pub +++ b/tests/key-bobby-pub @@ -3,33 +3,33 @@ Cipher: CURVE25519-ED25519-SALSA20-POLY1305 Owner: Bobby Mail: bobby@local - Key-ID: 0x1749A29D12CA3FC5 - Public-Key: 1lmvl2*#Rtt@yvCP&qw$TgU0A083o(!w=8s0]Akff8$$L - Creation Time: 2013-11-19T14:56:11 - Checksum: 29:26:30:F0:37:EF:EC:8D:4C:8E:0A:0D:CD:0D:A1:21 - 51:89:EA:56:F9:54:19:D0:EB:69:F4:7F:8F:2D:E7:E0 - Serial Number: 0x73C06B1E + Key-ID: 0x8F8C31402D541153 + Public-Key: 18r!O41ZcJmA%Nft]C@63ItZ2s+14NZuf}DY+*wXf8$$L + Creation Time: 2013-11-24T19:38:59 + Checksum: CE:2C:FF:3F:D0:D3:C3:46:7D:3A:32:10:9E:92:22:3F + 2B:D3:EE:FB:66:53:01:E8:07:9A:83:12:2D:D7:D0:7D + Serial Number: 0x53010B68 Key Version: 0x00000004 Random Art ID: +----------------+ - | . . | - | * . | - | = + | - | o . . o | - | . = o | - | o o | - | . | | | + | | + | . | + | . | + |. . . | + |+ . o . | + |o+o . + | + | ==. . | +----------------+ -1lmvl2*#Rtt@yvCP&qw$TgU0A083o(!w=8s0]Akffmc5iOurCi1Ip/71wZ^})-qyTe}4KGy -@QWuan[+6[qhs{@*4)9kryQwSUVp:95@hDe#84PLpx8[fUde?qqAvuXJm:nGTbv?r.7K5 -s{V=V&zf/G+6!$r6*]04NGll57E}UjBY}vd+R6{D(llxpmjV5)qAg2reBR$=4ZX)c2q3bG6 -PvKoilCEXzM&vx90sM!k{Smq2dsOiC%7+2.P0JX5c*w0GWn1CDR%aF@& -[>]aU-+Qbax29{}H -th(:gtcA7dRNYZv6ukJzX654kwI{jM4EWg0fcgQw}a?NqwU7NwP/RujCSvP&L5Im#=)nF5! -8.ZCoaNYZ[h-9JXgc4-Sgdat-mNG3k0@@r308!.(}V3P@1ARv]9SMfu +18r!O41ZcJmA%Nft]C@63ItZ2s+14NZuf}DY+*wXfrMI6SgVY^IjrNb3P[$qAOIRFH?c]*iOavTd%r/nn>4bO*92Ze8fnC(FSptK+Eu%4(or7sRgc7GvB[li3mawTB19uM +%abae])GA#q@z}Zv^Ft[-SEJk9#79PZ4:g{G#6Z$}@iFL6%meRnU?{=US>6xM[xO4Tz.8KO&^h?h:M.=xc +@70}#QM{lw[o?.[LCwyXmgQPNH@fZzm9Gz4b?%8*fQSNKvSbZ+C%Dg:v{%fNqBbn7tc.Ygi +.:ushR:wNi:YYbij8Zti0Fr]/J=!/NHcQKm8@*m6#J4#-of+%Il@Doo2W1(+s$}uyqmd@?z +*@*QBgKy3%YW!zHGIZT}}1XY6f({Aqmt0bUb0[8>9j +v42PeNv76*v]Vf/gNtl]u!Qf/p-!0@@r308!$I.VfVp1xbsexAe2j ------ END PCP PUBLICKEY ------ diff --git a/tests/key-bobby-sec b/tests/key-bobby-sec index 37ae37c..812c745 100644 --- a/tests/key-bobby-sec +++ b/tests/key-bobby-sec @@ -1,24 +1,24 @@ ----- BEGIN PCP SECRET KEY ----- Generated by: Pretty Curved Privacy Version 0.1.5 Cipher: CURVE25519-ED25519-SALSA20-POLY1305 - Key-ID: 0x1749A29D12CA3FC5 - Creation Time: 2013-11-19T14:56:11 - Serial Number: 0x73C06B1E + Key-ID: 0x8F8C31402D541153 + Creation Time: 2013-11-24T19:38:59 + Serial Number: 0x53010B68 Key Version: 0x00000004 -1lmvl2*#Rtt@yvCP&qw$TgU0A083o(!w=8s0]Akff94vs*^&{c!M<:ygH9Oj@o+CQ-5YL44 -@(Ewr>Ch*8gaZ@OurCi1Ip/71wZ^})-qyTe}4KGy@QWuan[+6[=k:}K^kAe?9Gz:]b.9[G5 -50*1D/jm227vzE57QPjI<9!W=Y5aKW}-TBpPl3Vtuh:2-$Cm]qhs{@*4)9kryQwSUVp:95@ -hDe#84PLpx8[fUde?qqAvuXJm:nGTbv?r.7K5s{V=V&zf/G+6!$r6*]04NGll57E}UjBY}v -d+R6{D(llxpmjV5)qAg2reBR$=4ZX)c2q3bG6PvKoilCEXzM&vx90sM!k{Smq2dsOiC%7+2 -.P0JX5c*w0GWn1CDR%aF@&[>]aU-+Qbax29{}Hth(:gtcA7dRNYZv6ukJzX654kwI{jM4EWg -0fcgQw}a?NqwU7NwP/RujCSvP&L5Im#=)nF5!8.ZCoaNYZ[h-9JXgc4-Sgdat-mNG3k0SSi -208!.(}V3P@1ARv]9SMfu +18r!O41ZcJmA%Nft]C@63ItZ2s+14NZuf}DY+*wXf97h#Sy$NsTEg$:(a)2^3VrK/=:@2Vh +ticy+]-7)jGY)jSgVY^IjrNb3P[$qAOIRFH?c]-e*@ZTW$!SSJ>(I@^&=3L +afZ@8X]6RsA8WOr@L5&6Pyvz1!ofy{JqfM+RPtlHO>4(3rqj6/C.Bz5i&[4bO*92Ze8fn +C(FSptK+Eu%4(or7sRgc7GvB[li3mawTB19uM%abae])GA#q@z}Zv^Ft[-SEJk9#79PZ4:g +{G#6Z$}@iFL6%meRnU?{=US>6xM[xO4Tz.8KO&^h?h:M.=xc@70}#QM{lw[o?.[LCwyXmgQPNH@fZzm9Gz +4b?%8*fQSNKvSbZ+C%Dg:v{%fNqBbn7tc.Ygi.:ushR:wNi:YYbij8Zti0Fr]/J=!/NHcQK +m8@*m6#J4#-of+%Il@Doo2W1(+s$}uyqmd@?z*@*QBgKy3%YW!zHGIZT}}1XY6f({Aqmt0bUb0[8>9jv42PeNv76*v]Vf/gNtl]u!Qf/p-!0SSi +208!$I.VfVp1xbsexAe2j ------ END PCP SECRET KEY ------ diff --git a/tests/keys.cfg b/tests/keys.cfg index 6bc6e50..c7aceb5 100644 --- a/tests/keys.cfg +++ b/tests/keys.cfg @@ -1,6 +1,6 @@ -bartid = 0x9AD180B48F2746E7 -bartserial = 0xEBBF8898 -idbobby = 0x1749A29D12CA3FC5 -idalicia = 0x23E0082C8250DB56 +bartid = 0x8C26BF8A5F2C72E8 +bartserial = 0xB0E778FA +idbobby = 0x8F8C31402D541153 +idalicia = 0x518602BB8F2D8C7F mailbobby = bobby@local mailalicia = alicia@local diff --git a/tests/static.h b/tests/static.h new file mode 100644 index 0000000..5c0d93a --- /dev/null +++ b/tests/static.h @@ -0,0 +1,53 @@ +size_t secret_a_len = 32; +unsigned char secret_a[32] = { +0xe0, 0x75, 0x2c, 0xb7, 0xeb, 0x7d, 0x73, 0x7a, +0x5b, 0x1c, 0x45, 0xf8, 0x9e, 0x8c, 0xc5, 0xfe, +0xb7, 0x30, 0x9e, 0xac, 0x03, 0x7c, 0x57, 0x0f, +0x0b, 0x76, 0x49, 0x2d, 0xa1, 0x33, 0x43, 0x53 +}; + +size_t public_a_len = 32; +unsigned char public_a[32] = { +0x2f, 0xb4, 0xaa, 0x49, 0x06, 0xf1, 0x8f, 0xa1, +0x22, 0xa0, 0x44, 0xf3, 0xd1, 0x3d, 0x0b, 0xca, +0xe3, 0x5f, 0x7c, 0x3b, 0x23, 0x05, 0xf0, 0xb2, +0x51, 0x11, 0xe8, 0x7f, 0x32, 0xc8, 0xec, 0x17 +}; + +size_t secret_b_len = 32; +unsigned char secret_b[32] = { +0xc0, 0xb6, 0xfb, 0xa5, 0x3b, 0xd2, 0x10, 0x76, +0x40, 0xf4, 0xbf, 0xda, 0x99, 0xdc, 0x6b, 0xf0, +0xf5, 0xbd, 0xcc, 0x2e, 0xaa, 0x85, 0x6a, 0x62, +0x64, 0xf4, 0xa0, 0xc8, 0xad, 0x82, 0x43, 0x56 +}; + +size_t public_b_len = 32; +unsigned char public_b[32] = { +0x47, 0xaa, 0x98, 0xad, 0xcd, 0x76, 0x6d, 0x8d, +0x7a, 0x1a, 0x4f, 0x5e, 0x24, 0xac, 0x98, 0xb9, +0x07, 0x3d, 0x48, 0xeb, 0x29, 0x41, 0x4c, 0x82, +0x06, 0x92, 0x58, 0xa4, 0x7d, 0xd8, 0x53, 0x7d +}; + +size_t message_len = 12; +unsigned char message[12] = { +0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, +0x72, 0x6c, 0x64, 0x00 +}; + +size_t nonce_len = 24; +unsigned char nonce[24] = { +0x24, 0x64, 0x0e, 0xd3, 0x8a, 0xbf, 0x98, 0x52, +0x1e, 0xd9, 0xa4, 0xdd, 0x93, 0x27, 0x11, 0xee, +0x63, 0x7e, 0x49, 0x2e, 0x97, 0x3b, 0x78, 0xee +}; + +size_t cipher_len = 28; +unsigned char cipher[28] = { +0x5f, 0x55, 0xeb, 0x71, 0x24, 0x84, 0x81, 0xdd, +0x17, 0x74, 0x89, 0xe2, 0x15, 0xbe, 0x3d, 0xc7, +0xd8, 0xce, 0x68, 0xc6, 0x6c, 0x2b, 0x45, 0xc7, +0x61, 0x43, 0xe7, 0x6d +}; + diff --git a/tests/statictest.c b/tests/statictest.c new file mode 100644 index 0000000..db6b59f --- /dev/null +++ b/tests/statictest.c @@ -0,0 +1,20 @@ +#include +#include "static.h" + +int main() { + unsigned char *t = ucmalloc(12); + if(pcp_sodium_verify_box(&t, cipher, cipher_len, nonce, secret_b, public_a) == 0) { + if(memcmp(t, message, message_len) == 0) { + printf("ok\n"); + } + else { + printf("decrypted but message doesnt match\n"); + return 1; + } + } + else { + printf("failed to decrypt\n"); + return 1; + } + return 0; +} diff --git a/tests/unittests.cfg b/tests/unittests.cfg index 2479278..810ba0c 100644 --- a/tests/unittests.cfg +++ b/tests/unittests.cfg @@ -271,6 +271,14 @@ dxmorg@florida.cops.gov expect = /VAR1/ +# +# raw C test with prepared keys, message and cipher + + cmd = ./statictest + expect = /ok/ + + + # # negative tests, check for error handling diff --git a/tests/unknown1 b/tests/unknown1 index a4c5a02..1317f72 100644 --- a/tests/unknown1 +++ b/tests/unknown1 @@ -1,11 +1,11 @@ -11FKR@@sm5ulAVpg?d#VWZ/C.1?-aFf -iN-ind-7XB/(-^m8faYlpRo^FO-}R-92:Sa->d[?O(ahZzFrW0vqYQvy&r/(yYExHYc4%ka -s5B4aN$G/i@$+9D]Mny)*RC>rxu-3/WHdzM/-aB/W/U@-4Xz=7NjO)]^GX)a!W7z4{lNp[i -9+Jx/yGLU$Zl64y[o(L-TjS4qM-[13*<@ykU[Ad8QZgC}SZmk=}Qg^TL*f!$D-0@@r308!.(}#uY%1HVsi9rl6t +1mLG&iym32X&^m7LJG900W!1Oo8u]r::]?SeByX8[qq<(O-!xv(-/rA +@sAmlyfv%HzNBy/lEDhKPG&>QK%hKS2:%3FuE+&QWD}$}Pm-/zYILHtH-@g^.dsVZF%B[LI +4UZ&G(q5giPD@l&NqrJ)e1(Hdj-Fz0#kxifA!jr1.z%[dP<^QobH5uN4dbNHZxk3b(gG/b) +{)T$E-YL)Z&!]tS5GL>91tkxZ<]}h5{6uoT5^OZc^##iYzFrW0vqYQvy&r/(yYKm0P?=H3f +xSQ)D#vQSz%hGprHEdo!3EMZ5}i(@Pg6p!w%T(>9R[*PR%kt}^d[+.EB[1PmMsyDHK7^sNF +#:JH?il.++eNF4?}zoH%=)1wIgSQv&2$?b>@8JgV3RzR[bvEi>Fxf%c>6-gFYf=H!bMoeoQ +f#=mgC%*=nCs>y])AbHM9{1AY&vOVRK9XxL!})KeiiO!g0Aho}2uW6uq18])6}q%R^&^={1 +&LXqD>YEdDJi2{=(0v(F4n@8@wBa3x=@:bJ{hS1j]S:tr!/@6GjHTi88@^VJd5rXc*KVxJVG(@7&[YSa%nqnZ*T1Szd& -/bP-hA1&-J9WlZHv5UqyJNkzKin{(Q@[eB?Nupc1xP5:kfWJC+=LypT2.[Jz#3aaUm)j&-r -z!7YPT*di]YBo}>&tJ8RDB7tF6NxSVcqL0R(Uf7enM}x:9]Ifaizddr)0phoo9Dm]1NA2c? -r!3+KqZ<:#q$WWJd8QiQhXKQhR8aBmR{#@cGElmKZ.VYXUYmA.1?-aFfiN-ind-7XB/(-^m8faYlpRo^FO-}R-92:S -a->d[?O(ahZzFrW0vqYQvy&r/(yYExHYc4%kas5B4aN$G/i@$+9D]Mny)*RC>rxu-3/WHdz -M/-aB/W/U@-4Xz=7NjO)]^GX)a!W7z4{lNp[i9+Jx/yGLU$Zl64y[o(L-TjS4qM-[13*<@y -kU[Ad8QZgC}SZmk=}Qg^TL*f!$D-0SSi -208!.(}#uY%1HVsi9rl6t +1mU!f1Alj(l+v(WQt45)e^^ +aoeF!k>y}}wrB^Xp6Z2YLO[p#@@tj38RyuKHmN?l}Ro/p0&.Bi0zddr)0gJtlcE>LG&iym3 +2X&^m7LJG900W!1Oo8u]r::]?SeByX8[qq<(O-!xv(-/rA@sAmlyfv%HzNBy/lEDhKPG&>QK%hKS2:%3 +FuE+&QWD}$}Pm-/zYILHtH-@g^.dsVZF%B[LI4UZ&G(q5giPD@l&NqrJ)e1(Hdj-Fz0#kxi +fA!jr1.z%[dP<^QobH5uN4dbNHZxk3b(gG/b){)T$E-YL)Z&!]tS5GL>91tkxZ<]}h5{6uo +T5^OZc^##iYzFrW0vqYQvy&r/(yYKm0P?=H3fxSQ)D#vQSz%hGprHEdo!3EMZ5}i(@Pg6p! +w%T(>9R[*PR%kt}^d[+.EB[1PmMsyDHK7^sNF#:JH?il.++eNF4?}zoH%=)1wIgSQv&2$?b +>@8JgV3RzR[bvEi>Fxf%c>6-gFYf=H!bMoeoQf#=mgC%*=nCs>y])AbHM9{1AY&vOVRK9Xx +L!})KeiiO!g0Aho}2uW6uq18])6}q%R^&^={1&LXqD>YEdDJi +2{=(0v(F4n(!qEVm6!Ek-M>gFR&C13T-*gZ+fyQ@!9I* -hRt+6n.(bqn5B4myD2$*etzI5-QwmkMKXNbeq4C8Dk)q7B4=)EeWyhtM>IV1pZ7:vF&!0 +0uIv3?N)Qxev.C#E>NfM=aQEigkm^Qzf@oBK&=Z$yRAe^bifC14#VrI:$M/LW&>f9b:7VE^@Y-{.({/XdJ=$p diff --git a/tests/unknown5 b/tests/unknown5 index b63caac..c6bb19e 100644 --- a/tests/unknown5 +++ b/tests/unknown5 @@ -1,2 +1,2 @@ -16LDgD]-t>Q1x*FrY.@b*&DTJ6N<9wQMrWGh5/.A -AxT^(g2ne2@jq9fFCEwlPu?UfHOk+huiZS000000000008!.(}#uY%0SSi200000 +1bv/%k]1URFil1tfg3xpP)i(Rk0Q>qjd#OrJ4Sw$Cp^NOiivH(3md$lUvpO#ehBcMBYiAH! +(7t$T:GZ<4Mb$2hzu)Mlo4B&l]WK)mGrz*000000000008!$I.#G=q0SSi200000