| 454 | } |
| 455 | |
| 456 | std::string GetPrivate() override |
| 457 | { |
| 458 | auto params = ExportKey(); |
| 459 | DerWriter derWriter; |
| 460 | derWriter.WriteInteger({ 0 }); |
| 461 | derWriter.WriteInteger(params.Modulus); |
| 462 | derWriter.WriteInteger(params.Exponent); |
| 463 | derWriter.WriteInteger(params.PrivateExponent); |
| 464 | derWriter.WriteInteger(params.Prime1); |
| 465 | derWriter.WriteInteger(params.Prime2); |
| 466 | derWriter.WriteInteger(params.Exponent1); |
| 467 | derWriter.WriteInteger(params.Exponent2); |
| 468 | derWriter.WriteInteger(params.Coefficient); |
| 469 | auto derBytes = derWriter.Complete(); |
| 470 | auto b64 = EncodeBase64(derBytes); |
| 471 | |
| 472 | std::ostringstream sb; |
| 473 | sb << std::string(kPrivateKeyBeginToken) << std::endl; |
| 474 | sb << b64; |
| 475 | sb << std::string(kPrivateKeyEndToken) << std::endl; |
| 476 | return sb.str(); |
| 477 | } |
| 478 | |
| 479 | std::string GetPublic() override |
| 480 | { |