view debian/implicit @ 1672:3a97f14c0235

Add Chacha20-Poly1305, AES128-GCM and AES256-GCM support (#93) * Add Chacha20-Poly1305 authenticated encryption * Add general AEAD approach. * Add [email protected] algo using LibTomCrypt chacha and poly1305 routines. Chacha20-Poly1305 is generally faster than AES256 on CPU w/o dedicated AES instructions, having the same key size. Compiling in will add ~5,5kB to binary size on x86-64. function old new delta chacha_crypt - 1397 +1397 _poly1305_block - 608 +608 poly1305_done - 595 +595 dropbear_chachapoly_crypt - 457 +457 .rodata 26976 27392 +416 poly1305_process - 290 +290 poly1305_init - 221 +221 chacha_setup - 218 +218 encrypt_packet 1068 1270 +202 dropbear_chachapoly_getlength - 147 +147 decrypt_packet 756 897 +141 chacha_ivctr64 - 137 +137 read_packet 543 637 +94 dropbear_chachapoly_start - 94 +94 read_kex_algos 792 880 +88 chacha_keystream - 69 +69 dropbear_mode_chachapoly - 48 +48 sshciphers 280 320 +40 dropbear_mode_none 24 48 +24 dropbear_mode_ctr 24 48 +24 dropbear_mode_cbc 24 48 +24 dropbear_chachapoly_mac - 24 +24 dropbear_chachapoly - 24 +24 gen_new_keys 848 854 +6 ------------------------------------------------------------------------------ (add/remove: 14/0 grow/shrink: 10/0 up/down: 5388/0) Total: 5388 bytes * Add AES128-GCM and AES256-GCM authenticated encryption * Add general AES-GCM mode. * Add [email protected] and [email protected] algo using LibTomCrypt gcm routines. AES-GCM is combination of AES CTR mode and GHASH, slower than AES-CTR on CPU w/o dedicated AES/GHASH instructions therefore disabled by default. Compiling in will add ~6kB to binary size on x86-64. function old new delta gcm_process - 1060 +1060 .rodata 26976 27808 +832 gcm_gf_mult - 820 +820 gcm_add_aad - 660 +660 gcm_shift_table - 512 +512 gcm_done - 471 +471 gcm_add_iv - 384 +384 gcm_init - 347 +347 dropbear_gcm_crypt - 309 +309 encrypt_packet 1068 1270 +202 decrypt_packet 756 897 +141 gcm_reset - 118 +118 read_packet 543 637 +94 read_kex_algos 792 880 +88 sshciphers 280 360 +80 gcm_mult_h - 80 +80 dropbear_gcm_start - 62 +62 dropbear_mode_gcm - 48 +48 dropbear_mode_none 24 48 +24 dropbear_mode_ctr 24 48 +24 dropbear_mode_cbc 24 48 +24 dropbear_ghash - 24 +24 dropbear_gcm_getlength - 24 +24 gen_new_keys 848 854 +6 ------------------------------------------------------------------------------ (add/remove: 14/0 grow/shrink: 10/0 up/down: 6434/0) Total: 6434 bytes
author Vladislav Grishenko <themiron@users.noreply.github.com>
date Mon, 25 May 2020 20:50:25 +0500
parents 1857c2c551ea
children
line wrap: on
line source

# $Id: implicit,v 1.11 2005/11/29 21:57:55 pape Exp $

.PHONY: deb-checkdir deb-checkuid

deb-checkdir:
	@test -e debian/control || sh -cx '! : wrong directory'
deb-checkuid:
	@test "`id -u`" -eq 0 || sh -cx '! : need root privileges'

%.deb: %.deb-docs %.deb-DEBIAN
	@rm -f $*.deb $*.deb-checkdir $*.deb-docs $*.deb-docs-base \
	  $*.deb-docs-docs $*.deb-docs-examples $*.deb-DEBIAN \
	  $*.deb-DEBIAN-dir $*.deb-DEBIAN-scripts $*.deb-DEBIAN-md5sums

%.udeb: %.deb-DEBIAN
	@rm -f $*.deb $*.deb-checkdir $*.deb-DEBIAN $*.deb-DEBIAN-dir \
	  $*.deb-DEBIAN-scripts $*.deb-DEBIAN-md5sums

%.deb-checkdir:
	@test -d debian/$* || sh -cx '! : directory debian/$* missing'
	@test "`id -u`" -eq 0 || sh -cx '! : need root privileges'

%.deb-docs-base:
	: implicit
	@rm -f debian/$*/usr/share/doc/$*/* || :
	@install -d -m0755 debian/$*/usr/share/doc/$*
	: debian/$*/usr/share/doc/$*/
	@sh -cx 'install -m0644 debian/copyright debian/$*/usr/share/doc/$*/'
	@sh -cx 'install -m0644 debian/changelog \
	  debian/$*/usr/share/doc/$*/changelog.Debian'
	@test ! -r changelog || \
	  sh -cx 'install -m0644 changelog debian/$*/usr/share/doc/$*/'
	@test -r debian/$*/usr/share/doc/$*/changelog || \
	  sh -cx 'mv debian/$*/usr/share/doc/$*/changelog.Debian \
	    debian/$*/usr/share/doc/$*/changelog'
	@test -s debian/$*/usr/share/doc/$*/changelog || \
	  sh -cx 'rm -f debian/$*/usr/share/doc/$*/changelog'
	@gzip -9 debian/$*/usr/share/doc/$*/changelog*
%.deb-docs-docs:
	@for i in `cat debian/$*.docs 2>/dev/null || :`; do \
	  if test -d $$i; then \
	    sh -cx "install -d -m0755 debian/$*/usr/share/doc/$*/$${i##*/}" && \
	    for j in $$i/*; do \
	      sh -cx "install -m0644 $$j \
	        debian/$*/usr/share/doc/$*/$${i##*/}/" || exit 1; \
	    done || exit 1; \
	    continue; \
	  fi; \
	  sh -cx "install -m0644 $$i debian/$*/usr/share/doc/$*/" || exit 1; \
	done
	@test ! -r debian/$*.README.Debian || \
	  sh -cx 'install -m0644 debian/$*.README.Debian \
	    debian/$*/usr/share/doc/$*/README.Debian'
	@if test -r debian/$*.NEWS.Debian; then \
	  sh -cx 'install -m0644 debian/$*.NEWS.Debian \
	    debian/$*/usr/share/doc/$*/NEWS.Debian && \
	      gzip -9 debian/$*/usr/share/doc/$*/NEWS.Debian'; \
	fi
%.deb-docs-examples:
	@rm -rf debian/$*/usr/share/doc/$*/examples
	: debian/$*/usr/share/doc/$*/examples/
	@test ! -r debian/$*.examples || \
	  install -d -m0755 debian/$*/usr/share/doc/$*/examples
	@for i in `cat debian/$*.examples 2>/dev/null || :`; do \
	  sh -cx "install -m0644 $$i debian/$*/usr/share/doc/$*/examples/" \
	    || exit 1; \
	done
%.deb-docs: %.deb-checkdir %.deb-docs-base %.deb-docs-docs %.deb-docs-examples
	: debian/$*/usr/share/doc/$*/ ok

%.deb-DEBIAN-base:
	@rm -rf debian/$*/DEBIAN
	: debian/$*/DEBIAN/
	@install -d -m0755 debian/$*/DEBIAN
	@for i in conffiles shlibs templates; do \
	  test ! -r debian/$*.$$i || \
	    sh -cx "install -m0644 debian/$*.$$i debian/$*/DEBIAN/$$i" \
	      || exit 1; \
	done
%.deb-DEBIAN-scripts:
	@for i in preinst prerm postinst postrm config; do \
	  test ! -r debian/$*.$$i || \
	    sh -cx "install -m0755 debian/$*.$$i debian/$*/DEBIAN/$$i" \
	      || exit 1; \
	done
%.deb-DEBIAN-md5sums:
	: debian/$*/DEBIAN/md5sums
	@rm -f debian/$*/DEBIAN/md5sums
	@cd debian/$* && find * -path 'DEBIAN' -prune -o \
	  -type f -exec md5sum {} >>DEBIAN/md5sums \;
%.deb-DEBIAN: %.deb-checkdir %.deb-DEBIAN-base %.deb-DEBIAN-scripts \
	  %.deb-DEBIAN-md5sums
	: debian/$*/DEBIAN/ ok