Versions in this module Expand all Collapse all v5 v5.2.1 Oct 5, 2019 Changes in this version + const Curve25519PrivateKeySize + const Curve25519PublicKeySize + const Curve25519SharedKeySize + const EC_PRIVATE_KEY + const ENCRYPTED_PRIVATE_KEY + const MINIMAL_KEY_LENGTH + const PUBLIC_KEY + var DefaultChunkSize = 1024 * 1024 + var ErrInvalidBlockSize = CryptoError("invalid blocksize") + var ErrInvalidPKCS7Data = CryptoError("invalid PKCS7 data (empty or not padded)") + var ErrInvalidPKCS7Padding = CryptoError("invalid padding on input") + var NewKeypair func() (*ed25519Keypair, error) + var OidSha256 = asn1.ObjectIdentifier + var OidSha384 = asn1.ObjectIdentifier + var OidSha512 = asn1.ObjectIdentifier + var UnsupportedKeyErr = CryptoError("key unsupported") + func DecodePrivateKey(keyBytes, password []byte) (key *ed25519PrivateKey, err error) + func DecodePublicKey(keyBytes []byte) (*ed25519PublicKey, error) + func EDHInit(ICa, EKa *ed25519PrivateKey, ICb, LTCb, OTCb *ed25519PublicKey) ([]byte, error) + func EDHRespond(ICa, EKa *ed25519PublicKey, ICb, LTCb, OTCb *ed25519PrivateKey) ([]byte, error) + func ZeroData(data []byte) + type CMSEnvelope struct + Content envelopedData + ContentType asn1.ObjectIdentifier + type Cipher interface + AddKeyRecipient func(key *ed25519PublicKey) error + AddPasswordRecipient func(password []byte) + DecryptStream func(in io.Reader, out io.Writer, key *ed25519PrivateKey) error + DecryptThenVerify func(data []byte, decryptionKey *ed25519PrivateKey, ...) ([]byte, error) + DecryptWithPassword func(data []byte, password []byte) ([]byte, error) + DecryptWithPrivateKey func(data []byte, key *ed25519PrivateKey) ([]byte, error) + Encrypt func(data []byte) ([]byte, error) + EncryptStream func(in io.Reader, out io.Writer) error + SignThenEncrypt func(data []byte, signerKey *ed25519PrivateKey) ([]byte, error) + func NewCipher() Cipher + type CryptoError string + func (c CryptoError) Error() string + type CustomParam struct + Key string + Value asn1.RawValue + type Envelope struct + CustomParams []CustomParam + Data CMSEnvelope + Version int + func (envelope *Envelope) Validate() error + type KeyType int + type PFS interface + ReceivePFCSession func(ICa, EKa *ed25519PublicKey, ICb, LTCb, OTCb *ed25519PrivateKey, ...) (sess *PFSSession, err error) + StartPFSSession func(ICb, LTCb, OTCb *ed25519PublicKey, ICa, EKa *ed25519PrivateKey, ...) (sess *PFSSession, err error) + type PFSSession struct + AD []byte + Initiator bool + SKa []byte + SKb []byte + SessionID []byte + func (s *PFSSession) Decrypt(salt, ciphertext []byte) ([]byte, error) + func (s *PFSSession) Encrypt(plaintext []byte) (salt, ciphertext []byte) + type StructuralError struct + Msg string + func (e StructuralError) Error() string + type SyntaxError struct + Msg string + func (e SyntaxError) Error() string + type VirgilAccessTokenSigner struct + Crypto *VirgilCrypto + func NewVirgilAccessTokenSigner() *VirgilAccessTokenSigner + func (t *VirgilAccessTokenSigner) GenerateTokenSignature(data []byte, privateKey interface{ ... }) ([]byte, error) + func (t *VirgilAccessTokenSigner) GetAlgorithm() string + func (t *VirgilAccessTokenSigner) VerifyTokenSignature(data []byte, signature []byte, publicKey interface{ ... }) error + type VirgilCardCrypto struct + Crypto *VirgilCrypto + func NewVirgilCardCrypto() *VirgilCardCrypto + func (c *VirgilCardCrypto) ExportPublicKey(key interface{ ... }) ([]byte, error) + func (c *VirgilCardCrypto) GenerateSHA512(data []byte) []byte + func (c *VirgilCardCrypto) GenerateSignature(data []byte, key interface{ ... }) ([]byte, error) + func (c *VirgilCardCrypto) ImportPublicKey(data []byte) (interface{ ... }, error) + func (c *VirgilCardCrypto) VerifySignature(data []byte, signature []byte, key interface{ ... }) error + type VirgilChunkCipher interface + Decrypt func(key, nonce, ad []byte, chunkSize int, in io.Reader, out io.Writer) error + Encrypt func(key, nonce, ad []byte, chunkSize int, in io.Reader, out io.Writer) error + var ChunkCipher VirgilChunkCipher + type VirgilCrypto struct + MakeCipher func() Cipher + UseSHA256Fingerprints bool + func NewVirgilCrypto() *VirgilCrypto + func (c *VirgilCrypto) CalculateIdentifier(data []byte) []byte + func (c *VirgilCrypto) Decrypt(data []byte, key interface{ ... }) ([]byte, error) + func (c *VirgilCrypto) DecryptStream(in io.Reader, out io.Writer, key interface{ ... }) error + func (c *VirgilCrypto) DecryptThenVerify(data []byte, decryptionKey interface{ ... }, verifierKeys ...) ([]byte, error) + func (c *VirgilCrypto) Encrypt(data []byte, recipients ...) ([]byte, error) + func (c *VirgilCrypto) EncryptStream(in io.Reader, out io.Writer, recipients ...) error + func (c *VirgilCrypto) ExportPrivateKey(key interface{ ... }, password string) ([]byte, error) + func (c *VirgilCrypto) ExportPublicKey(key interface{ ... }) ([]byte, error) + func (c *VirgilCrypto) ExtractPublicKey(key interface{ ... }) (interface{ ... }, error) + func (c *VirgilCrypto) GenerateKeypair() (*ed25519Keypair, error) + func (c *VirgilCrypto) ImportPrivateKey(data []byte, password string) (interface{ ... }, error) + func (c *VirgilCrypto) ImportPublicKey(data []byte) (interface{ ... }, error) + func (c *VirgilCrypto) ReceivePFCSession(ICa, EKa *ed25519PublicKey, ICb, LTCb, OTCb *ed25519PrivateKey, ...) (sess *PFSSession, err error) + func (c *VirgilCrypto) SetKeyType(keyType KeyType) error + func (c *VirgilCrypto) Sign(data []byte, key interface{ ... }) ([]byte, error) + func (c *VirgilCrypto) SignStream(in io.Reader, key interface{ ... }) ([]byte, error) + func (c *VirgilCrypto) SignThenEncrypt(data []byte, signerKey interface{ ... }, recipients ...) ([]byte, error) + func (c *VirgilCrypto) StartPFSSession(ICb, LTCb, OTCb *ed25519PublicKey, ICa, EKa *ed25519PrivateKey, ...) (sess *PFSSession, err error) + func (c *VirgilCrypto) VerifyHashSignature(hash []byte, signature []byte, key interface{ ... }) error + func (c *VirgilCrypto) VerifySignature(data []byte, signature []byte, key interface{ ... }) error + func (c *VirgilCrypto) VerifyStream(in io.Reader, signature []byte, key interface{ ... }) error + type VirgilHash interface + New func() hash.Hash + Sum func(data []byte) []byte + var Hash VirgilHash + type VirgilPrivateKeyExporter struct + Crypto *VirgilCrypto + Password string + func NewPrivateKeyExporter(password string) *VirgilPrivateKeyExporter + func (v *VirgilPrivateKeyExporter) ExportPrivateKey(key interface{ ... }) ([]byte, error) + func (v *VirgilPrivateKeyExporter) ImportPrivateKey(data []byte) (interface{ ... }, error) + type VirgilSigner interface + Sign func(data []byte, signer *ed25519PrivateKey) ([]byte, error) + SignHash func(hash []byte, signer *ed25519PrivateKey) ([]byte, error) + SignStream func(data io.Reader, signer *ed25519PrivateKey) ([]byte, error) + var Signer VirgilSigner + type VirgilStreamCipher interface + Decrypt func(key, nonce, ad []byte, in io.Reader, out io.Writer) error + Encrypt func(key, nonce, ad []byte, in io.Reader, out io.Writer) error + var StreamCipher VirgilStreamCipher + type VirgilVerifier interface + Verify func(data []byte, key *ed25519PublicKey, signature []byte) error + VerifyHash func(hash []byte, key *ed25519PublicKey, signature []byte) error + VerifyStream func(data io.Reader, key *ed25519PublicKey, signature []byte) error + var Verifier VirgilVerifier + type WrongPasswordError struct