...

Source file src/github.com/cloudflare/circl/sign/schemes/schemes.go

Documentation: github.com/cloudflare/circl/sign/schemes

     1  // Package schemes contains a register of signature algorithms.
     2  //
     3  // Implemented schemes:
     4  //
     5  //	Ed25519
     6  //	Ed448
     7  //	Ed25519-Dilithium2
     8  //	Ed448-Dilithium3
     9  package schemes
    10  
    11  import (
    12  	"strings"
    13  
    14  	"github.com/cloudflare/circl/sign"
    15  	"github.com/cloudflare/circl/sign/ed25519"
    16  	"github.com/cloudflare/circl/sign/ed448"
    17  	"github.com/cloudflare/circl/sign/eddilithium2"
    18  	"github.com/cloudflare/circl/sign/eddilithium3"
    19  )
    20  
    21  var allSchemes = [...]sign.Scheme{
    22  	ed25519.Scheme(),
    23  	ed448.Scheme(),
    24  	eddilithium2.Scheme(),
    25  	eddilithium3.Scheme(),
    26  }
    27  
    28  var allSchemeNames map[string]sign.Scheme
    29  
    30  func init() {
    31  	allSchemeNames = make(map[string]sign.Scheme)
    32  	for _, scheme := range allSchemes {
    33  		allSchemeNames[strings.ToLower(scheme.Name())] = scheme
    34  	}
    35  }
    36  
    37  // ByName returns the scheme with the given name and nil if it is not
    38  // supported.
    39  //
    40  // Names are case insensitive.
    41  func ByName(name string) sign.Scheme {
    42  	return allSchemeNames[strings.ToLower(name)]
    43  }
    44  
    45  // All returns all signature schemes supported.
    46  func All() []sign.Scheme { a := allSchemes; return a[:] }
    47  

View as plain text