<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://tech.uvoo.io/index.php?action=history&amp;feed=atom&amp;title=Ed25519_go</id>
	<title>Ed25519 go - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://tech.uvoo.io/index.php?action=history&amp;feed=atom&amp;title=Ed25519_go"/>
	<link rel="alternate" type="text/html" href="https://tech.uvoo.io/index.php?title=Ed25519_go&amp;action=history"/>
	<updated>2026-04-25T16:03:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>https://tech.uvoo.io/index.php?title=Ed25519_go&amp;diff=2579&amp;oldid=prev</id>
		<title>Busk: Created page with &quot;``` package main  import (         &quot;crypto/rand&quot;         &quot;encoding/pem&quot;         // &quot;encoding/hex&quot;         // b64 &quot;encoding/base64&quot;         &quot;io/ioutil&quot;         // &quot;golang.org/x...&quot;</title>
		<link rel="alternate" type="text/html" href="https://tech.uvoo.io/index.php?title=Ed25519_go&amp;diff=2579&amp;oldid=prev"/>
		<updated>2021-12-30T04:33:41Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;``` package main  import (         &amp;quot;crypto/rand&amp;quot;         &amp;quot;encoding/pem&amp;quot;         // &amp;quot;encoding/hex&amp;quot;         // b64 &amp;quot;encoding/base64&amp;quot;         &amp;quot;io/ioutil&amp;quot;         // &amp;quot;golang.org/x...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;```&lt;br /&gt;
package main&lt;br /&gt;
&lt;br /&gt;
import (&lt;br /&gt;
        &amp;quot;crypto/rand&amp;quot;&lt;br /&gt;
        &amp;quot;encoding/pem&amp;quot;&lt;br /&gt;
        // &amp;quot;encoding/hex&amp;quot;&lt;br /&gt;
        // b64 &amp;quot;encoding/base64&amp;quot;&lt;br /&gt;
        &amp;quot;io/ioutil&amp;quot;&lt;br /&gt;
        // &amp;quot;golang.org/x/crypto/ed25519&amp;quot;&lt;br /&gt;
        &amp;quot;crypto/ed25519&amp;quot;&lt;br /&gt;
        &amp;quot;golang.org/x/crypto/ssh&amp;quot;&lt;br /&gt;
        // &amp;quot;crypto/ssh&amp;quot;&lt;br /&gt;
        // b58 &amp;quot;encoding/base58&amp;quot;&lt;br /&gt;
        // b32 &amp;quot;encoding/base32&amp;quot;&lt;br /&gt;
        // &amp;quot;github.com/jeremybusk/edkey&amp;quot;&lt;br /&gt;
        &amp;quot;github.com/mikesmitty/edkey&amp;quot;&lt;br /&gt;
        b58 &amp;quot;github.com/akamensky/base58&amp;quot;&lt;br /&gt;
        // b58 &amp;quot;github.com/btcsuite/btcutil/base58&amp;quot;&lt;br /&gt;
        // b58 &amp;quot;github.com/jeremybusk/base58&amp;quot;&lt;br /&gt;
        &amp;quot;fmt&amp;quot;&lt;br /&gt;
        &amp;quot;reflect&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
func main() {&lt;br /&gt;
        // Generate a new private/public keypair for OpenSSH&lt;br /&gt;
        pkey, skey, _ := ed25519.GenerateKey(rand.Reader)&lt;br /&gt;
          b58pkey := b58.Encode(pkey)&lt;br /&gt;
          b58skey := b58.Encode(skey)&lt;br /&gt;
          dpkey, err := b58.Decode(b58pkey)&lt;br /&gt;
          dskey, err := b58.Decode(b58skey)&lt;br /&gt;
          // fmt.Println(err)&lt;br /&gt;
        // if err != nil {&lt;br /&gt;
        // }&lt;br /&gt;
        msg := []byte(&amp;quot;test this&amp;quot;)&lt;br /&gt;
        // fmsg := []byte(&amp;quot;1test this&amp;quot;)&lt;br /&gt;
        smsg := ed25519.Sign(dskey, msg)&lt;br /&gt;
        vmsg := ed25519.Verify(dpkey, msg, smsg)&lt;br /&gt;
        fmt.Println(&amp;quot;signed msg&amp;quot;, smsg)&lt;br /&gt;
        fmt.Println(&amp;quot;verify msg&amp;quot;, vmsg)&lt;br /&gt;
        fmt.Println(&amp;quot;var1 = &amp;quot;, reflect.TypeOf(pkey))&lt;br /&gt;
          fmt.Println(b58skey)&lt;br /&gt;
          fmt.Println(b58pkey)&lt;br /&gt;
          db58pkey, err := b58.Decode(b58pkey)&lt;br /&gt;
          db58skey, err := b58.Decode(b58skey)&lt;br /&gt;
        if err != nil {&lt;br /&gt;
          fmt.Println(err)&lt;br /&gt;
        }&lt;br /&gt;
          fmt.Println(db58skey)&lt;br /&gt;
          fmt.Println(db58pkey)&lt;br /&gt;
        // fmt.Println(&amp;quot;jpubkey&amp;quot;, jpubKey)&lt;br /&gt;
        // fmt.Println(&amp;quot;jprivkey&amp;quot;, jprivKey)&lt;br /&gt;
        // fmt.Println(&amp;quot;jprivkey string&amp;quot;, b58.Encode(jprivKey))&lt;br /&gt;
        // fmt.Println(&amp;quot;jprivkey string&amp;quot;, b58.Encode(jprivKey))&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
        pubKey, privKey, _ := ed25519.GenerateKey(rand.Reader)&lt;br /&gt;
        publicKey, _ := ssh.NewPublicKey(pubKey)&lt;br /&gt;
&lt;br /&gt;
        pemKey := &amp;amp;pem.Block{&lt;br /&gt;
                Type:  &amp;quot;OPENSSH PRIVATE KEY&amp;quot;,&lt;br /&gt;
                Bytes: edkey.MarshalED25519PrivateKey(privKey),&lt;br /&gt;
        }&lt;br /&gt;
        privateKey := pem.EncodeToMemory(pemKey)&lt;br /&gt;
        authorizedKey := ssh.MarshalAuthorizedKey(publicKey)&lt;br /&gt;
&lt;br /&gt;
        _ = ioutil.WriteFile(&amp;quot;id_ed25519&amp;quot;, privateKey, 0600)&lt;br /&gt;
        _ = ioutil.WriteFile(&amp;quot;id_ed25519.pub&amp;quot;, authorizedKey, 0644)&lt;br /&gt;
}&lt;br /&gt;
```&lt;/div&gt;</summary>
		<author><name>Busk</name></author>
	</entry>
</feed>