gogenonions/app.go

46 lines
800 B
Go

package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/sha1"
"crypto/x509"
"encoding/base32"
"encoding/pem"
"fmt"
"io"
"os"
"time"
)
var enc = base32.NewEncoding("abcdefghijklmnopqrstuvwxyz234567")
func main() {
pkey, err := rsa.GenerateKey(rand.Reader, 4096)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(pkey.D)
fmt.Printf("%v\n", pkey.D.Bytes())
// get the DER encoded key
data := x509.MarshalPKCS1PrivateKey(pkey)
fmt.Printf("%v\n", data)
b := pem.Block{
Bytes: data,
Type: "RSA PRIVATE KEY",
Headers: map[string]string{
"date": time.Now().String(),
},
}
data = pem.EncodeToMemory(&b)
fmt.Printf("%s\n", data)
h := sha1.New()
io.WriteString(h, "His money is twice tainted:")
sum := h.Sum(nil)
println(enc.EncodeToString(sum)[0:15])
}