/* voc 2.1.0 [2025/05/18] for gcc LP64 on slackware xtspaF */

#ifndef ulmAsymmetricCiphers__h
#define ulmAsymmetricCiphers__h

#include "SYSTEM.h"
#include "ulmBlockCiphers.h"
#include "ulmCiphers.h"
#include "ulmStreams.h"

typedef
	struct ulmAsymmetricCiphers_CipherRec *ulmAsymmetricCiphers_Cipher;

typedef
	struct ulmAsymmetricCiphers_CipherRec { /* ulmBlockCiphers_CipherRec */
		INT64 _prvt0;
		char _prvt1[96];
	} ulmAsymmetricCiphers_CipherRec;

typedef
	struct ulmAsymmetricCiphers_InterfaceRec *ulmAsymmetricCiphers_Interface;

typedef
	void (*ulmAsymmetricCiphers_SplitProc)(ulmAsymmetricCiphers_Cipher*, ulmAsymmetricCiphers_Cipher);

typedef
	void (*ulmAsymmetricCiphers_RandomStreamProc)(ulmStreams_Stream);

typedef
	struct ulmAsymmetricCiphers_InterfaceRec { /* ulmCiphers_InterfaceRec */
		ulmCiphers_CryptProc encrypt, decrypt;
		ulmCiphers_CryptProc compencrypt;
		ulmAsymmetricCiphers_SplitProc split;
		ulmAsymmetricCiphers_RandomStreamProc randomStream;
	} ulmAsymmetricCiphers_InterfaceRec;



import ADDRESS *ulmAsymmetricCiphers_InterfaceRec__typ;
import ADDRESS *ulmAsymmetricCiphers_CipherRec__typ;

import UINT32 ulmAsymmetricCiphers_Capabilities (ulmAsymmetricCiphers_Cipher key);
import BOOLEAN ulmAsymmetricCiphers_ComposedEncrypt (ulmStreams_Stream in, ulmAsymmetricCiphers_Cipher key, ulmStreams_Stream out);
import BOOLEAN ulmAsymmetricCiphers_ComposedEncryptBlock (ulmStreams_Stream in, ulmAsymmetricCiphers_Cipher key, ulmStreams_Stream out);
import BOOLEAN ulmAsymmetricCiphers_ComposedEncryptPart (ulmStreams_Stream in, ulmAsymmetricCiphers_Cipher key, INT32 length, ulmStreams_Stream out);
import void ulmAsymmetricCiphers_Init (ulmAsymmetricCiphers_Cipher key, ulmAsymmetricCiphers_Interface if_, UINT32 cap, INT32 inLength, INT32 outLength);
import BOOLEAN ulmAsymmetricCiphers_IsPublicKey (ulmAsymmetricCiphers_Cipher key);
import void ulmAsymmetricCiphers_RandomStream (ulmStreams_Stream s, ulmAsymmetricCiphers_Cipher key);
import void ulmAsymmetricCiphers_Split (ulmAsymmetricCiphers_Cipher *public, ulmAsymmetricCiphers_Cipher key);
import void *ulmAsymmetricCiphers__init(void);


#endif // ulmAsymmetricCiphers
