()
| 555 | } |
| 556 | |
| 557 | func (a *authUser) AddKey() ssh.Signer { |
| 558 | a.lock.Lock() |
| 559 | defer a.lock.Unlock() |
| 560 | reader := rand.Reader |
| 561 | bitSize := 4096 |
| 562 | key, err := rsa.GenerateKey(reader, bitSize) |
| 563 | if err != nil { |
| 564 | panic(message.Wrap(err, message.MTest, "Failed to generate RSA key.")) |
| 565 | } |
| 566 | var pemBlock = &pem.Block{ |
| 567 | Type: "RSA PRIVATE KEY", |
| 568 | Bytes: x509.MarshalPKCS1PrivateKey(key), |
| 569 | } |
| 570 | var pemBytes bytes.Buffer |
| 571 | if err := pem.Encode(&pemBytes, pemBlock); err != nil { |
| 572 | panic(message.Wrap(err, message.MTest, "Failed to marshal private key.")) |
| 573 | } |
| 574 | |
| 575 | sshPrivateKey, err := ssh.ParsePrivateKey(pemBytes.Bytes()) |
| 576 | if err != nil { |
| 577 | panic(message.Wrap(err, message.MTest, "Failed to parse SSH private key.")) |
| 578 | } |
| 579 | |
| 580 | a.keys = append(a.keys, sshPrivateKey) |
| 581 | return sshPrivateKey |
| 582 | } |
| 583 | |
| 584 | func (a *authUser) GetKeys() []ssh.Signer { |
| 585 | a.lock.Lock() |
nothing calls this directly
no test coverage detected