use YAML();
use Affix;
affix './xor_cipher.so', 'string_crypt_free', [ Pointer [Void] ], Void;
sub string_crypt {
CORE::state $string_crypt //= wrap './xor_cipher.so', 'string_crypt', [ Str, Int, Str ],
Pointer [Char];
my ( $input, $key ) = @_;
my $ptr = $string_crypt->( $input, length($input), $key );
my $out = $ptr->raw( length $input );
string_crypt_free($ptr);
$out;
}
#
my $orig = "hello world";
my $key = "foobar";
print YAML::Dump($orig);
my $encrypted = string_crypt( $orig, $key );
print YAML::Dump($encrypted);
my $decrypted = string_crypt( $encrypted, $key );
print YAML::Dump($decrypted);