| 288 | } |
| 289 | |
| 290 | void ElGamalSigPrivateKey::Sign(RandomNumberGenerator &rng, const byte *message, unsigned int messageLen, byte *signature) |
| 291 | { |
| 292 | assert(messageLen <= MaxMessageLength()); |
| 293 | |
| 294 | Integer m(message, messageLen); |
| 295 | Integer r; |
| 296 | Integer s; |
| 297 | |
| 298 | RawSign(rng, m, r, s); |
| 299 | r.Encode(signature, qLen); |
| 300 | s.Encode(signature+qLen, qLen); |
| 301 | } |
| 302 | |
| 303 | void ElGamalSigPrivateKey::RawSign(RandomNumberGenerator &rng, const Integer &m, Integer &r, Integer &s) const |
| 304 | { |