X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=gcrypt.c;h=926eb15f41ae479b167a0b9a694b972c6f88fcfd;hb=2830b9f8;hp=1ce4587f3d2e165a64e3d40991bfadf5264b47c6;hpb=6934fc28976594d0eb387bfef25cb938c677814c;p=paraslash.git diff --git a/gcrypt.c b/gcrypt.c index 1ce4587f..926eb15f 100644 --- a/gcrypt.c +++ b/gcrypt.c @@ -951,7 +951,7 @@ int sc_send_bin_buffer(struct stream_cipher_context *scc, char *buf, gret = gcry_cipher_encrypt(scc->send->handle, tmp, size, (unsigned char *)buf, size); assert(gret == 0); - ret = write_nonblock(scc->fd, (char *)tmp, size); + ret = xwrite(scc->fd, (char *)tmp, size); free(tmp); return ret; } @@ -972,3 +972,15 @@ int sc_recv_bin_buffer(struct stream_cipher_context *scc, char *buf, assert(gret == 0); return ret; } + +void sc_crypt(struct stream_cipher *sc, struct iovec *src, struct iovec *dst) +{ + gcry_cipher_hd_t handle = sc->handle; + gcry_error_t gret; + + /* perform in-place encryption */ + *dst = *src; + gret = gcry_cipher_encrypt(handle, src->iov_base, src->iov_len, + NULL, 0); + assert(gret == 0); +}