| 396 | } |
| 397 | |
| 398 | func writeCAFile(ca *truststore.CA, dir string) error { |
| 399 | fileName := filepath.Join(ca.UniqueName + ".pem") |
| 400 | file, err := os.Create(filepath.Join(dir, fileName)) |
| 401 | if err != nil { |
| 402 | return err |
| 403 | } |
| 404 | defer file.Close() |
| 405 | |
| 406 | blk := &pem.Block{ |
| 407 | Type: "CERTIFICATE", |
| 408 | Bytes: ca.Raw, |
| 409 | } |
| 410 | |
| 411 | if err := pem.Encode(file, blk); err != nil { |
| 412 | return err |
| 413 | } |
| 414 | if err := file.Close(); err != nil { |
| 415 | return err |
| 416 | } |
| 417 | |
| 418 | ca.FilePath = file.Name() |
| 419 | return nil |
| 420 | } |
| 421 | |
| 422 | type SudoManager struct { |
| 423 | truststore.CmdFS |