// Copyright 2018-2024 The NATS Authors// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.package nkeysimport ()// A KeyPair from a public key capable of verifying only.type pub struct { pre PrefixByte pub ed25519.PublicKey}// PublicKey will return the encoded public key associated with the KeyPair.// All KeyPairs have a public key.func ( *pub) () (string, error) { , := Encode(.pre, .pub)if != nil {return"", }returnstring(), nil}// Seed will return an error since this is not available for public key only KeyPairs.func ( *pub) () ([]byte, error) {returnnil, ErrPublicKeyOnly}// PrivateKey will return an error since this is not available for public key only KeyPairs.func ( *pub) () ([]byte, error) {returnnil, ErrPublicKeyOnly}// Sign will return an error since this is not available for public key only KeyPairs.func ( *pub) ( []byte) ([]byte, error) {returnnil, ErrCannotSign}// Verify will verify the input against a signature utilizing the public key.func ( *pub) ( []byte, []byte) error {if !ed25519.Verify(.pub, , ) {returnErrInvalidSignature }returnnil}// Wipe will randomize the public key and erase the pre byte.func ( *pub) () { .pre = '0'io.ReadFull(rand.Reader, .pub)}func ( *pub) ( []byte, string) ([]byte, error) {if .pre == PrefixByteCurve {returnnil, ErrCannotSeal }returnnil, ErrInvalidNKeyOperation}func ( *pub) ( []byte, string, io.Reader) ([]byte, error) {if .pre == PrefixByteCurve {returnnil, ErrCannotSeal }returnnil, ErrInvalidNKeyOperation}func ( *pub) ( []byte, string) ([]byte, error) {if .pre == PrefixByteCurve {returnnil, ErrCannotOpen }returnnil, ErrInvalidNKeyOperation}
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.