mirror of
https://github.com/FiloSottile/age.git
synced 2025-12-23 05:25:14 +00:00
plugin: build tag EncodeX25519Recipient which uses crypto/ecdh
This commit is contained in:
@@ -5,7 +5,6 @@
|
|||||||
package plugin
|
package plugin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/ecdh"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@@ -54,13 +53,3 @@ func ParseRecipient(s string) (name string, data []byte, err error) {
|
|||||||
name = strings.TrimPrefix(hrp, "age1")
|
name = strings.TrimPrefix(hrp, "age1")
|
||||||
return name, data, nil
|
return name, data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// EncodeX25519Recipient encodes a native X25519 recipient from a
|
|
||||||
// [crypto/ecdh.X25519] public key. It's meant for plugins that implement
|
|
||||||
// identities that are compatible with native recipients.
|
|
||||||
func EncodeX25519Recipient(pk *ecdh.PublicKey) (string, error) {
|
|
||||||
if pk.Curve() != ecdh.X25519() {
|
|
||||||
return "", fmt.Errorf("wrong ecdh Curve")
|
|
||||||
}
|
|
||||||
return bech32.Encode("age", pk.Bytes())
|
|
||||||
}
|
|
||||||
|
|||||||
24
plugin/encode_go1.20.go
Normal file
24
plugin/encode_go1.20.go
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
// Copyright 2023 The age Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//go:build go1.20
|
||||||
|
|
||||||
|
package plugin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/ecdh"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"filippo.io/age/internal/bech32"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EncodeX25519Recipient encodes a native X25519 recipient from a
|
||||||
|
// [crypto/ecdh.X25519] public key. It's meant for plugins that implement
|
||||||
|
// identities that are compatible with native recipients.
|
||||||
|
func EncodeX25519Recipient(pk *ecdh.PublicKey) (string, error) {
|
||||||
|
if pk.Curve() != ecdh.X25519() {
|
||||||
|
return "", fmt.Errorf("wrong ecdh Curve")
|
||||||
|
}
|
||||||
|
return bech32.Encode("age", pk.Bytes())
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user