sub sign { my ($self, %params) = @_; my $key = $params{Key}; my $M = $params{Message} || $params{Plaintext}; return $self->error("No Key parameter", \$M, \%params) unless $key; return $self->error("No Message or Plaintext parameter", \$key, \%params) un less $M; my $k = octet_len ($key->n); my $salt = makerandom_octet (Length => $self->{hlen}); my $em = $self->encode ($M, $salt, $k-1); my $m = os2ip ($em); my $sig = $self->{primitives}->core_sign (Key => $key, Message => $m); my $S = i2osp ($sig, $k); return ($S, $salt) if wantarray; return $S; }