Documentation ¶
Overview ¶
Package cryptoutil contains generic & stateless crypto helpers.
Index ¶
- Constants
- func AESCTRStream(key, iv []byte) (cipher.Stream, error)
- func AESGCMDecrypt(key, data []byte) ([]byte, error)
- func AESGCMEncrypt(key, data []byte) ([]byte, error)
- func ConcatAndHashSha256(slices ...[]byte) *[sha256.Size]byte
- func DeriveKey(passphrase, salt []byte) ([]byte, []byte, error)
- func EdwardsToMontgomery(privKey crypto.PrivKey, pubKey crypto.PubKey) (*[32]byte, *[32]byte, error)
- func EdwardsToMontgomeryPriv(privKey crypto.PrivKey) (*[KeySize]byte, error)
- func EdwardsToMontgomeryPub(pubKey crypto.PubKey) (*[KeySize]byte, error)
- func GenerateNonce() (*[NonceSize]byte, error)
- func GenerateNonceSize(size int) ([]byte, error)
- func KeySliceToArray(keySlice []byte) (*[KeySize]byte, error)
- func NewFuncSigner(key libp2p_ci.PubKey, signer func([]byte) ([]byte, error)) stdcrypto.Signer
- func NonceSliceToArray(nonceSlice []byte) (*[NonceSize]byte, error)
- func PrivateKeyToCurve25519(ret *[32]byte, privateKey ed25519.PrivateKey)
- func PublicKeyToCurve25519(ret *[32]byte, publicKey ed25519.PublicKey) error
- func SeedFromEd25519PrivateKey(key crypto.PrivKey) ([]byte, error)
Constants ¶
const ( KeySize = 32 // Key size required by box NonceSize = 24 // Nonce size required by box ScryptIterations = 1 << 15 ScryptR = 8 ScryptP = 1 ScryptKeyLen = 32 )
Variables ¶
This section is empty.
Functions ¶
func AESCTRStream ¶
AESCTRStream returns a CTR stream that can be used to produce ciphertext without padding.
func AESGCMDecrypt ¶
AESGCMDecrypt uses AES+GCM to decrypt plaintext data.
func AESGCMEncrypt ¶
AESGCMEncrypt use AES+GCM to encrypt plaintext data.
The generated output will be longer than the original plaintext input.
func DeriveKey ¶
DeriveKey takes a passphrase of any length and returns a key of fixed size.
If no salt is provided, a new one will be created and returned.
func EdwardsToMontgomery ¶
func EdwardsToMontgomery(privKey crypto.PrivKey, pubKey crypto.PubKey) (*[32]byte, *[32]byte, error)
EdwardsToMontgomery converts ed25519 priv/pub keys to X25519 keys.
func EdwardsToMontgomeryPriv ¶
EdwardsToMontgomeryPriv converts ed25519 priv key to X25519 priv key.
func EdwardsToMontgomeryPub ¶
EdwardsToMontgomeryPub converts ed25519 pub key to X25519 pub key.
func GenerateNonce ¶
func GenerateNonceSize ¶
func NewFuncSigner ¶ added in v1.3.2
func PrivateKeyToCurve25519 ¶ added in v1.2.4
func PrivateKeyToCurve25519(ret *[32]byte, privateKey ed25519.PrivateKey)
from: https://github.com/agl/ed25519/blob/5312a61534124124185d41f09206b9fef1d88403/extra25519/extra25519.go#LL16C11-L16C11 PrivateKeyToCurve25519 converts an ed25519 private key into a corresponding curve25519 private key such that the resulting curve25519 public key will equal the result from PublicKeyToCurve25519.
func PublicKeyToCurve25519 ¶ added in v1.2.4
PublicKeyToCurve25519 converts an Ed25519 public key into the curve25519 public key that would be generated from the same private key.
Types ¶
This section is empty.