Add fill for encryption schemes.
[catacomb-perl] / algorithms.xs
index 6a01f15..1c9f5f1 100644 (file)
@@ -227,6 +227,19 @@ encrypt(c, plain)
        RETVAL
 
 SV *
+fill(c, len)
+       gcipher *c
+       size_t len;
+       CODE:
+       RETVAL = NEWSV(0, len ? len : 1);
+       memset(SvPVX(RETVAL), 0, len);
+       c->ops->encrypt(c, SvPVX(RETVAL), SvPVX(RETVAL), len);
+       SvCUR_set(RETVAL, len);
+       SvPOK_on(RETVAL);
+       OUTPUT:
+       RETVAL
+
+SV *
 decrypt(c, cipher)
        gcipher *c
        SV *cipher
@@ -243,6 +256,19 @@ decrypt(c, cipher)
        RETVAL
 
 SV *
+filldecrypt(c, len)
+       gcipher *c
+       size_t len;
+       CODE:
+       RETVAL = NEWSV(0, len ? len : 1);
+       memset(SvPVX(RETVAL), 0, len);
+       c->ops->decrypt(c, SvPVX(RETVAL), SvPVX(RETVAL), len);
+       SvCUR_set(RETVAL, len);
+       SvPOK_on(RETVAL);
+       OUTPUT:
+       RETVAL
+
+SV *
 setiv(c, iv)
        gcipher *c
        SV *iv