KISS.

Encrypt/decrypt strings. That is it. People can use Data::Dumper or Storable if they want to dump data structures. Allow it to handle a list in and out. If a list of strings are passed in in array context, send back a list of (en|de)crypted strings. If the output context is scalar, do a join on the data coming in. No need for more complexity, we already have interfaces for dealing with that. Text is the common denominator of both Unix and Perl. Perl is good at making things look like text.

Not worrying about the size of blocks is good. Hashing of user supplied keys is good.

Oh, and supply another pair of functions which take handles in and out. For encrypting a lot of data there is no need to have it all in memory at once.


In reply to Re (tilly) 1: What you want in a crypto API. by tilly
in thread What you want in a crypto API. by rpc

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.