An open API service indexing awesome lists of open source software.

https://github.com/kayrus/putty

Go package to parse PuTTY private key formats
https://github.com/kayrus/putty

golang golang-package ppk private-key putty ssh-keys

Last synced: 10 months ago
JSON representation

Go package to parse PuTTY private key formats

Awesome Lists containing this project

README

          

# putty

![Test Status](https://github.com/kayrus/putty/actions/workflows/go-test.yml/badge.svg)
![Linter Status](https://github.com/kayrus/putty/actions/workflows/golangci-lint.yml/badge.svg)

Go package to parse PuTTY private key formats. Go 1.23 or above is required.

## Example

```go
package main

import (
"log"

"github.com/kayrus/putty"
)

func main() {
var privateKey interface{}

// read the key
puttyKey, err := putty.NewFromFile("test.ppk")
if err != nil {
log.Fatal(err)
}

// parse putty key
if puttyKey.Encryption != "none" {
// If the key is encrypted, decrypt it
privateKey, err = puttyKey.ParseRawPrivateKey([]byte("testkey"))
if err != nil {
log.Fatal(err)
}
} else {
privateKey, err = puttyKey.ParseRawPrivateKey(nil)
if err != nil {
log.Fatal(err)
}
}

log.Printf("%+#v", privateKey)
}
```