Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ISDS.H.LIBDATOVK(3)	     Manual for	Libdatovka	   ISDS.H.LIBDATOVK(3)

NAME
       isds.h.libdatovka - API definition for libdatovka

SYNOPSIS
       #include	<libdatovka/isds.h>

DESCRIPTION
       This header file	declares interface for the libdatovka library.

CONSTANTS
   Service locators
       Addresses of known ISDS servers.

       Base URLs of production ISDS instance

	   isds_locator

		  extern const char isds_locator[];

	      Without client certificate authentication.

	   isds_cert_locator

		  extern const char isds_cert_locator[];

	      With client certificate authentication.

	   isds_vodz_locator

		  extern const char isds_vodz_locator[];

	      High-volume  data	message	locator	without	client certificate au-
	      thentication.

	   isds_vodz_cert_locator

		  extern const char isds_vodz_cert_locator[];

	      High-volume data message locator with client certificate authen-
	      tication.

	   isds_otp_locator

		  extern const char isds_otp_locator[];

	      With OTP authentication.

	   isds_mep_locator

		  extern const char isds_mep_locator[];

	      With MEP authentication.

       Base URLs of testing ISDS instance

	   isds_testing_locator

		  extern const char isds_testing_locator[];

	      Without client certificate authentication.

	   isds_cert_testing_locator

		  extern const char isds_cert_testing_locator[];

	      With client certificate authentication.

	   isds_vodz_testing_locator

		  extern const char isds_vodz_testing_locator[];

	      High-volume data message locator without client certificate  au-
	      thentication.

	   isds_vodz_cert_testing_locator

		  extern const char isds_vodz_cert_testing_locator[];

	      High-volume data message locator with client certificate authen-
	      tication.

	   isds_otp_testing_locator

		  extern const char isds_otp_testing_locator[];

	      With OTP authentication.

	   isds_mep_testing_locator

		  extern const char isds_mep_testing_locator[];

	      With MEP authentication.

DATA TYPES
   struct isds_ctx
	   struct isds_ctx;

       Context for specific ISDS box.

   isds_error
	   typedef enum	isds_error;

       Error code. Known values:

       IE_SUCCESS
	   No error. Numeric value 0.

       IE_ERROR
	   Unspecified error.

       IE_NOTSUP
	   Operation is	not supported.

       IE_INVAL
	   Invalid value.

       IE_INVALID_CONTEXT
	   The context is not valid.

       IE_NOT_LOGGED_IN
	   The context has not been logged in.

       IE_CONNECTION_CLOSED
	   Network connection has been closed.

       IE_TIMED_OUT
	   Time	limit for network operation exceeded.

       IE_NONEXIST
	   Requested entity doesn't exist.

       IE_NOMEM
	   Not enough memory.

       IE_NETWORK
	   Network error.

       IE_HTTP
	   Error on HTTP level.

       IE_SOAP
	   Error on SOAP level.

       IE_XML
	   Error on XML	level.

       IE_ISDS
	   Problem with	ISDS server.

       IE_ENUM
	   Invalid enumeration value.

       IE_DATE
	   Invalid date	value.

       IE_TOO_BIG
	   Value is too	big.

       IE_TOO_SMALL
	   Value is too	small.

       IE_NOTUNIQ
	   Value is not	unique.

       IE_NOTEQUAL
	   Compared values are not equal.

       IE_PARTIAL_SUCCESS
	   Operation on	a vector succeeded for some values but failed for oth-
	   ers.

       IE_ABORTED
	   Operation was aborted by application	request.

       IE_SECURITY
	   Security requirements were not satisfied.

   isds_log_level
	   typedef enum	isds_log_level;

       Log level. Know values:

       ILL_NONE
	   0

       ILL_CRIT
	   10

       ILL_ERR
	   20

       ILL_WARNING
	   30

       ILL_INFO
	   40

       ILL_DEBUG
	   50

       ILL_ALL
	   100

   isds_log_facility
	   typedef enum	isds_log_facility;

       Log facility. Know values:

       ILF_NONE
	   0x0

       ILF_HTTP
	   0x1

       ILF_SOAP
	   0x2

       ILF_ISDS
	   0x4

       ILF_FILE
	   0x8

       ILF_SEC
	   0x10

       ILF_XML
	   0x20

       ILF_ALL
	   0xFF

   isds_option
	   typedef enum	isds_option;

       libdatovka option identifiers. Known values:

       IOPT_TLS_VERIFY_SERVER
	   Option  type	 is  _Bool. Whether to verify server identity. Default
	   value is true.

       IOPT_TLS_CA_FILE
	   Option type is char *. Option value is a file name with certificate
	   authority certificates. Default value depends on used cryptographic
	   library.

       IOPT_TLS_CA_DIRECTORY
	   Option type is char *, Option value is a directory with certificate
	   authority certificates. Default value depends on used cryptographic
	   library.

       IOPT_TLS_CRL_FILE
	   Option type is char *. Option value is a file name with  certificat
	   revocation  list in PEM format. Default value depends on used cryp-
	   tographic library.

       IOPT_NORMALIZE_MIME_TYPE
	   Optiona type	is _Bool. Whether to normalize MIME type  values.  De-
	   fault value is false.

   isds_tls_option
	   typedef enum	isds_tls_option;

	   Warning

	   This	type is	deprecated.

       TLS libdatovka option identifiers. Known	values:

       ITLS_VERIFY_SERVER
	   Option type is _Bool. Whether to verify server identity.

       ITLS_CA_FILE
	   Option type is char *. Option value is a file name with certificate
	   authority certificates.

       ITLS_CA_DIRECTORY
	   Option  type	 is char *. Option value is a directory	name with cer-
	   tificate authority certificates.

       ITLS_CRL_FILE
	   Option type is char *. Option value is a file name with certificate
	   revocation list in PEM format.

   isds_pki_format
	   typedef enum	isds_pki_format;

       Cryptographic material encoding.	Known values:

       PKI_FORMAT_PEM
	   PEM format.

       PKI_FORMAT_DER
	   DER format.

       PKI_FORMAT_ENG
	   The material	is stored in a cryptographic engine.

   struct isds_pki_credentials
	   struct isds_pki_credentials;

       This structure holds public key infrastructure  cryptographic  material
       to authenticate a client. Members are:

       char *engine;
	   String  identifier  of  cryptographic  engine  to use (where	key is
	   stored). Use	NULL for no engine.

       isds_pki_format certificate_format;
	   Certificate format.

       char *certificate;
	   A path to client certificate, or a certificate nickname in case  of
	   NSS	as  curl back-end, or key slot identifier inside cryptographic
	   engine. Some	cryptographic engines can pair	certificate  with  key
	   automatically (NULL value).

       isds_pki_format key_format;
	   Private key format.

       char *key;
	   A  path  to client private key, or key identifier in	case an	engine
	   is used.

       char *passphrase;
	   Zero	terminated string with password	for decrypting private key, or
	   engine PIN. Use NULL	for no pass-phrase or to let the engine	to ask
	   for it.

   isds_otp_method
	   typedef enum	isds_otp_method;

       One-time	password authentication	method.	Known values:

       OTP_HMAC
	   HMAC-based OTP method.

       OTP_TIME
	   Time-based OTP method.

   isds_otp_resolution
	   typedef enum	isds_otp_resolution;

       One-time	password authentication	resolution. Known values:

       OTP_RESOLUTION_SUCCESS
	   Authentication succeeded.

       OTP_RESOLUTION_UNKNOWN
	   Status is unknown.

       OTP_RESOLUTION_BAD_AUTHENTICATION
	   Bad log-in. You can retry to	log in.

       OTP_RESOLUTION_ACCESS_BLOCKED
	   Access blocked for 60 minutes. (Because a brute  force  attack  was
	   detected.)

       OTP_RESOLUTION_PASSWORD_EXPIRED
	   Password has	expired.

	       Note
	       It's not	clear which password expired: OTP or regular password?

       OTP_RESOLUTION_TOO_FAST
	   OTP	cannot be sent repeatedly at this rate.	(Minimal delay depends
	   on TOTP window setting.)

       OTP_RESOLUTION_UNAUTHORIZED
	   User	name is	not allowed to access requested	URI.

       OTP_RESOLUTION_TOTP_SENT
	   OTP has been	generated and sent by the ISDS to the user.

       OTP_RESOLUTION_TOTP_NOT_SENT
	   OTP could not been sent by the ISDS.	Retry later.

   struct isds_otp
	   struct isds_otp;

       This structure holds one-time password when authenticating a client and
       resolution of the authentication.

       Input members are:

       isds_otp_method method;
	   Select OTP method to	use.

       char *otp_code;
	   One-time password to	use. Pass NULL,	if you	do  not	 know  it  yet
	   (e.g.   in  case of first phase of time-based OTP authentication to
	   request new code from ISDS.)

       Output members are:

       isds_otp_resolution resolution;
	   Fine-grade resolution of this OTP authentication attempt.

   isds_DbType
	   typedef enum	isds_DbType;

       Box type. It classifies box owner by his	legal status. Known values:

       DBTYPE_OVM_MAIN
	   This	is a special value for isds_find_box_by_fulltext. It's not ac-
	   cepted by any other services.

       DBTYPE_SYSTEM
	   This	is a special value for sender of messages sent	by  the	 ISDS.
	   You can find	it only	in incoming messages. It's not accepted	by any
	   other services.

       DBTYPE_OVM
	   Standard government (state or municipality or similar) office.

       DBTYPE_OVM_NOTAR
	   Notary (stopped being used, replaced	with OVM_PFO).

       DBTYPE_OVM_EXEKUT
	   Executor (stopped being used, replaced with OVM_PFO).

       DBTYPE_OVM_REQ
	   Subsidiary  office  with OVM	(governing) status assigned on request
	   (section 6 and 7 of the act).

       DBTYPE_OVM_FO
	   Natural person with OVM status (without identification number).

       DBTYPE_OVM_PFO
	   Natural person in business with OVM status (e.g. notary  or	execu-
	   tor).

       DBTYPE_OVM_PO
	   Juridical  person  with OVM status (arisen from previously existing
	   PO or PO_REQ).

       DBTYPE_PO
	   Standard commercial organization (listed in trade registry).

       DBTYPE_PO_ZAK
	   Other organization founded by an act	(stopped being used,  replaced
	   with	PO).

       DBTYPE_PO_REQ
	   An organization with	a box assigned on its request.

       DBTYPE_PFO
	   Person in business.

       DBTYPE_PFO_ADVOK
	   Lawyer.

       DBTYPE_PFO_DANPOR
	   Tax consultant.

       DBTYPE_PFO_INSSPR
	   Administrator  of  insolvency  (stopped  being  used, replaced with
	   OVM_PFO).

       DBTYPE_PFO_AUDITOR
	   Statutory auditor.

       DBTYPE_PFO_ZNALEC
	   Expert witness.

       DBTYPE_PFO_TLUMOCNIK
	   Sworn translator.

       DBTYPE_PFO_ARCH
	   Architect.

       DBTYPE_PFO_AIAT
	   Authorised engineer / technician.

       DBTYPE_PFO_AZI
	   Authorised geodetics	engineer.

       DBTYPE_PFO_REQ
	   Person in business on its request.

       DBTYPE_FO
	   Standard person.

       Some interfaces refer to	gross box type.	These are the  shortest	 names
       of  the	identifiers.  For  example,  DBTYPE_OVM	 is  a	gross type for
       DB_OVM_NOTAR or DBTYPE_OVM. But not for DBTYPE_PO.

   isds_DbState
	   typedef enum	isds_DbState;

       Box status from point of	view of	accessibility. Known values:

       DBSTATE_ACCESSIBLE
	   The box is accessible.

       DBSTATE_TEMP_INACCESSIBLE
	   The box is temporarily inaccessible (at the request of the user).

       DBSTATE_NOT_YET_ACCESSIBLE
	   The box has not yet been activated.

       DBSTATE_PERM_INACCESSIBLE
	   The box is permanently inaccessible.

       DBSTATE_REMOVED
	   The box has been removed.

       DBSTATE_TEMP_INACCESSIBLE_LAW
	   The box is temporarily inaccessible (because	of the reasons enumer-
	   ated	in the law).

   isds_privileges
	   typedef enum	isds_privileges;

       Distinct	user permissions from point of view of ISDS. Instances can  be
       bitmaps of any of these distinct	values.	Distinct known values are:

       PRIVIL_READ_NON_PERSONAL
	   The	user  can  download  and read messages with dmPersonalDelivery
	   equal to false.

       PRIVIL_READ_ALL
	   The user can	download and  read  messages  with  dmPersonalDelivery
	   equal to true.

       PRIVIL_CREATE_DM
	   The user can	create and send	messages, the user can download	outgo-
	   ing (sent) messages.

       PRIVIL_VIEW_INFO
	   The	user  can list messages	and read data about a message post and
	   delivery.

       PRIVIL_SEARCH_DB
	   The user can	can search for boxes.

       PRIVIL_OWNER_ADM
	   The user can	administer his box (to add and remove permitted	 users
	   and to modify theirs	permissions.)

       PRIVIL_READ_VAULT
	   The user can	read messages stored in	the long term storage.

	       Note
	       This permission is not used since 2012-05.

       PRIVIL_ERASE_VAULT
	   The user can	delete messages	from the long term storage.

   enum	isds_message_status
	   typedef enum	isds_message_status isds_message_status;

       Message status. Known values are:

       MESSAGESTATE_SENT
	   The message has been	put into ISDS.

       MESSAGESTATE_STAMPED
	   Message was stamped by a time stamp authority.

       MESSAGESTATE_INFECTED
	   The	message	included viruses. Infected documents have been removed
	   from	the message.

       MESSAGESTATE_DELIVERED
	   The message was delivered. (dmDeliveryTime is populated.)

       MESSAGESTATE_SUBSTITUTED
	   The message was delivered through fiction, dmAcceptanceTime is pop-
	   ulated.

       MESSAGESTATE_RECEIVED
	   The message was accepted (by	user's log-in or user's	 explicit  re-
	   quest).  dmAcceptanceTime is	populated.

       MESSAGESTATE_READ
	   The message has been	read by	a user.

       MESSAGESTATE_UNDELIVERABLE
	   The	message	could not been delivered. (E.g.The recipient's box has
	   been	made inaccessible meantime.)

       MESSAGESTATE_REMOVED
	   The message's content was deleted.

       MESSAGESTATE_IN_VAULT
	   The message is stored in the	long term storage.

       The values can be combined into a bit mask for some functions.  A  spe-
       cial MESSAGESTATE_ANY macro denotes any of the states.

   isds_hash_algorithm
	   typedef enum	isds_hash_algorithm;

       Hash algorithm types. Known values are:

       HASH_ALGORITHM_MD5
	   MD5.

       HASH_ALGORITHM_SHA_1
	   SHA-1.

       HASH_ALGORITHM_SHA_224
	   SHA-224.

       HASH_ALGORITHM_SHA_256
	   SHA-256.

       HASH_ALGORITHM_SHA_384
	   SHA-384.

       HASH_ALGORITHM_SHA_512
	   SHA-256.

   isds_buffer_strategy
	   typedef enum	isds_buffer_strategy;

       Buffer  storage strategy. This type defines how a function should embed
       application provided buffer into	raw element of output structure. Known
       values are:

       BUFFER_DONT_STORE
	   Don't fill raw member.

       BUFFER_COPY
	   Copy	buffer content into newly allocated raw	member.

       BUFFER_MOVE
	   Copy	 pointer.  Leave  deallocation	to  structure  destructor   (-
	   isds_*_free()).

   struct isds_hash
	   struct isds_hash;

       This is a hash value storage. Members are:

       isds_hash_algorithm algorithm;
	   Hash	algorithm.

       size_t length;
	   Hash	value length in	bytes.

       void *value;
	   Hash	value as a byte	stream.

   struct isds_PersonName
	   struct isds_PersonName;

       Name of a person. Members are:

       char *pnFirstName;
	   First name.

       char *pnMiddleName;
	   Middle name.

       char *pnLastName;
	   Current last	name.

       char *pnLastNameAtBirth;
	   Last	name at	birth.

   struct isds_BirthInfo
	   struct isds_BirthInfo;

       Date and	place of a birth. Members are:

       struct tm *biDate;
	   Date	 of  birth  in	local  time  at	the birth place. Only tm_year,
	   tm_mon and tm_mday members of the struct tm carry sane value.  Oth-
	   ers are undefined.

       char *biCity;
	   City	where a	person was born.

       char *biCounty;
	   Region  where a person was born. This is the	kind of	region that is
	   called Bezirk in German and okres in	Czech.

       char *biState;
	   State wher a	person was born.

   struct isds_Address
	   struct isds_Address;

       Postal address. Members are:

       char *adCity;
	   City.

       char *adStreet;
	   Street.

       char *adNumberInStreet;
	   Identification of an	entrance  on  the  street.   slo  orientan  in
	   Czech.

       char *adNumberInMunicipality;
	   Identification  of  a  building in the municipality.	 slo popisn in
	   Czech.

       char *adZipCode;
	   Postal code for mail	routing.

       char *adState;
	   State.

   struct isds_DbOwnerInfo
	   struct isds_DbOwnerInfo;

       Data about a box	and his	owner. NULL pointer values mean	undefined val-
       ues. Members are:

       char *dbID;
	   Box identifier. Specification limits	the length to 7	characters.

       isds_DbType *dbType;
	   Box type.

       char *ic;
	   Identifier of the owner.

       isds_PersonName *personName;
	   Name	of a person owning the box.

       char *firmName;
	   Name	of a firm owning the box.

       isds_BirthInfo *birthInfo;
	   Birth details of the	person.

       isds_Address *address;
	   Postal address of the owner.

       char *nationality;
	   Nationality of the owner.

       char *email;
	   E-mail addres of the	owner.

       char *telNumber;
	   Telephone number of the owner.

       char *identifier;
	   External box	identifier for data provider (OVM, PO, maybe  PFO  box
	   types.) Specification limits	the length to 20 characters.

       char *registryCode;
	   PFO	external  registry  code. Specification	limits the length to 5
	   characters.

       long int	*dbState;
	   Box state. 1	means the box is active.

	       Note
	       The type	is long	 int  because  specification  declares	it  as
	       xsd:integer.

	       Note
	       TODO: enum?

       _Bool *dbEffectiveOVM;
	   The Box has OVM role	(section 5a of the act).

       _Bool *dbOpenAddressing;
	   This	non-OVM	box is free to receive messages	from anybody.

   isds_UserType
	   typedef enum	isds_UserType;

       User type. Known	values are:

       USERTYPE_PRIMARY
	   Owner of the	box.

       USERTYPE_ENTRUSTED
	   User	with limited access to the box.

       USERTYPE_ADMINISTRATOR
	   User	who can	manage USERTYPE_ENTRUSTED users.

       USERTYPE_OFFICIAL
	   ???

       USERTYPE_OFFICIAL_CERT
	   ???

       USERTYPE_LIQUIDATOR
	   Company liquidator.

       USERTYPE_RECEIVER
	   Company receiver.

       USERTYPE_GUARDIAN
	   Legal guardian.

   struct isds_DbUserInfo
	   struct isds_DbUserInfo;

       Data  about  a user. NULL pointer values	mean undefined values. Members
       are:

       char *userID;
	   User	identifier. Specification limits the length from 6 to 12 char-
	   acters.

       isds_UserType *userType;
	   User	type.

       long int	*userPrivils;
	   Set of user permissions.

       isds_PersonName *personName;
	   Name	of the user.

       isds_Address *address;
	   Postal address of the user.

       struct tm *biDate;
	   Date	of birth in local time.	Only tm_year, tm_mon and tm_mday  mem-
	   bers	of the struct tm carry sane value. Others are undefined.

       char *ic;
	   Identifier a	supervising firm. Specification	limits the length to 8
	   characters.

       char *firmName;
	   Name	 of a supervising firm.	Specification limits the length	to 100
	   characters.

       char *caStreet;
	   Contact address. Street and number.

       char *caCity;
	   Czech city of the contact address.

       char *caZipCode;
	   Postal code of the contact address.

       char *caState;
	   Abbreviated country of contact address. This	value is optional  and
	   implicit meaning is CZ.

   isds_event_type
	   typedef enum	isds_event_type;

       Message event type. Known values	are:

       EVENT_UNKNOWN
	   Event unknown to this library.

       EVENT_ACCEPTED_BY_RECIPIENT
	   Message has been delivered and accepted by recipient	action.

       EVENT_ACCEPTED_BY_FICTION
	   Message  has	 been delivered, acceptance period timed out, the mes-
	   sage	is considered accepted.

       EVENT_ACCEPTED_BY_FICTION_NO_USER
	   Message has been delivered, acceptance  period  timed  out  because
	   there was no	user who could accept the message.

       EVENT_UNDELIVERABLE
	   Recipient box was made inaccessible,	thus the message is undeliver-
	   able.

       EVENT_COMMERCIAL_ACCEPTED
	   Recipient confirmed acceptance of this commercial message.

       EVENT_ENTERED_SYSTEM
	   The	message	entered	the ISDSsystem,	i.e.  it has been just sent by
	   a sender.

       EVENT_DELIVERED
	   The message has been	delivered into recipient's box.

       EVENT_PRIMARY_LOGIN
	   Primary user	logged into recipient's	box.

       EVENT_ENTRUSTED_LOGIN
	   Entrusted user with capability to read logged into recipient's box.

       EVENT_SYSCERT_LOGIN
	   An application authenticated	by system certificate logged into  re-
	   cipient's box.

   struct isds_event
	   struct isds_event;

       An  event  that	happened  in a message life. All members are optional.
       Members are:

       struct isds_timeval *time;
	   When	the event occurred.

       isds_event_type *type;
	   Type	of the event.

       char *description;
	   Human-readable event	description  generated	by  the	 ISDS  system.
	   (Very probably in Czech language).

   enum	isds_IdLevel_value
	   enum	isds_IdLevel_value;

       Specifies  which	information the	sender of a data message wants to pub-
       lish about his person.

       PUBLISH_USERTYPE
	   Publish information about the sender	type. This information is  al-
	   ways	revealed to the	recipient.

       PUBLISH_PERSONNAME
	   Publish sender's personal name.

       PUBLISH_BIDATE
	   Publish sender's birth date.

       PUBLISH_BICITY
	   Publish  sender's  birth  city.  This information is	available only
	   when	sender is SENDERTYPE_ENTRUSTED of a FO or PFO box.

       PUBLISH_BICOUNTY
	   Publish sender's birth county. This information is  available  only
	   when	sender is SENDERTYPE_ENTRUSTED of a FO or PFO box.

       PUBLISH_ADCODE
	   Publish sender's RUIAN address code.

       PUBLISH_FULLADDRESS
	   Publish sender's full address.

       PUBLISH_ROBIDENT
	   Publish information whether sender is identified within the ROB.

   struct isds_envelope
	   struct isds_envelope;

       Message	envelope. These	are the	metadata about a message. It does con-
       tain the	message	documents.

       Be ware that the	string length constraints are forced  only  on	output
       members	transmitted to the ISDS. The other direction (downloading from
       the ISDS) can break these rules.	It should not happen, but nobody knows
       how much	incompatible new version of the	ISDS protocol will be. This is
       the gold	Internet rule: be strict on what you send, be tolerant on what
       you receive.

       Following members apply to incoming messages only:

       char *dmID;
	   Message identifier. Maximal length is 20 characters.

       char *dbIDSender;
	   Box identifier of the sender. Special value aaaaaaa means the  mes-
	   sage	 was  sent  by	the  ISDS system. Not by another user. Maximal
	   length is 7 characters.

       char *dmSender;
	   Sender's name. Maximal length is 100	characters.

       char *dmSenderAddress;
	   Postal address of the sender. Maximal length	is 100 characters.

       long int	*dmSenderType;
	   Gross box type of the sender. You can use isds_DbType to  enumerate
	   some	 known box types. This is a generic integer because the	proto-
	   col keeps the value unconstrained and the library must support  any
	   syntactically correct value.

       char *dmRecipient;
	   Recipient's name. Maximal length is 100 characters.

       char *dmRecipientAddress;
	   Postal address of the recipient. Maximal length is 100 characters.

       _Bool *dmAmbiguousRecipient;
	   The recipient has OVM role.

       Following  members are assigned by the ISDS in different	phases of mes-
       sage life cycle:

       unsigned	long int *dmOrdinal;
	   Ordinal number in list of incoming/outgoing messages.

       enum isds_message_status	*dmMessageStatus;
	   Message state.

       long int	*dmAttachmentSize;
	   Size	of message documents in	kilobytes. The value is	rounded.

       struct isds_timeval *dmDeliveryTime;
	   The time of delivering the message into recipient's box. It will be
	   NULL, if the	message	has not	been delivered yet.

       struct isds_timeval *dmAcceptanceTime;
	   The time of accepting the message by	 the  recipient.  It  will  be
	   NULL, if message has	not been accepted yet.

       struct isds_hash	*hash;
	   The	message	 digest.  This	is  a hash of a	substring representing
	   isds:dmDM XML subtree. You can use isds_compute_message_hash	 func-
	   tion	 to  compute a hash of the message and then compare it against
	   this	structure member using isds_hash_cmp function.

       void *timestamp;
	   This	is a binary image of a qualified time stamp of the hash	value.
	   The time stamp is provided by the ISDS system. Messages  that  have
	   not yet been	stamped	will have this value NULL.

       size_t timestamp_length;
	   Length of the timestamp value in bytes.

       struct isds_list	*events;
	   Events  the message passed trough. It's a list of isds_event	struc-
	   tures.

       Following members apply to both outgoing	and incoming messages:

       char *dmSenderOrgUnit;
	   Sender's organisation unit as a string. This	is optional.

       long int	*dmSenderOrgUnitNum;
	   Sender's organisation unit as a number. This	is optional.

       char *dbIDRecipient;
	   Recipient's box identifier. This is mandatory. Maximal length is  7
	   characters.

       char *dmRecipientOrgUnit;
	   Recipient's organisation unit as a string. This is optional.

       long int	*dmRecipientOrgUnitNum;
	   Recipient's organisation unit of as a number. This is optional.

       char *dmToHands;
	   A person in recipient's organisation. This is optional.

       char *dmAnnotation;
	   A subject (title) of	the message. Maximal length is 255 characters.

       char *dmRecipientRefNumber;
	   Czech:  slo	jednac	pjemce.	This is	optional. Maximal length is 50
	   characters.

       char *dmSenderRefNumber;
	   Czech: slo jednac odeslatele. This is optional. Maximal  length  is
	   50 chars.

       char *dmRecipientIdent;
	   Czech:  spisov znaka	pjemce.	This is	optional. Maximal length is 50
	   characters.

       char *dmSenderIdent;
	   Czech: spisov znaka odeslatele This is optional. Maximal length  is
	   50 chars.

       Following five members constitute a reference to	an item	from the Czech
       Act  Collection.	 The  human-readable reference looks like Point	(Para-
       graph) <section>	Section	Law/Year Coll.	The members apply to both  in-
       coming and outgoing messages:

       long int	*dmLegalTitleLaw;
	   A number of an act mandating	the authority.

       long int	*dmLegalTitleYear;
	   A year of issuing the act mandating the authority.

       char *dmLegalTitleSect;
	   A section of	the act	mandating the authority. Czech:	paragraf.

       char *dmLegalTitlePar;
	   A paragraph of the act mandating the	authority. Czech: odstavec.

       char *dmLegalTitlePoint;
	   A point of the act mandating	the authority. Czech: psmeno.

       Other incoming/outgoing message members:

       _Bool *dmPersonalDelivery;
	   If true, only person	with higher privileges can read	this message.

       _Bool *dmAllowSubstDelivery;
	   Allow  delivery  through  fiction.  I.e.  Even if the recipient did
	   not read this message, the message is considered as delivered after
	   (currently) 10 days.	This is	called delivery	through	fiction.  Only
	   OVM dbType sender can set it.

       char *dmType;
	   Message type	(commercial subtypes or	government message).

	   Input values	(when sending the message):

	   "I"
	       A  commercial  message offering paying the response (initiatory
	       message). It's necessary	to define dmSenderRefNumber member.

	   "K"
	       A commercial message paid by the	sender.

	   "O"
	       A commercial response paid by the sender	of a  initiatory  mes-
	       sage. It's necessary to copy a value from the dmSenderRefNumber
	       of  the	initiatory message to the dmRecipientRefNumber of this
	       message.

	   "V"
	       A non-commercial	government message. This is the	default	 mean-
	       ing if the value	is undefined while sending a message.

	   Output values (when retrieving the message):

	   "A"
	       This  is	 a  subsidized initiatory commercial message which can
	       pay a response.

	   "B"
	       This is a subsidized initiatory commercial  message  which  has
	       already paid the	response.

	   "C"
	       This  is	 a  subsidized initiatory commercial message where the
	       response	offer has expired.

	   "D"
	       This is an externally subsidized	commercial message.

	   "E"
	       This is a commercial message prepaid by a stamp.

	   "G"
	       This is a commercial message paid by a sponsor.

	   "I"
	       See the input values.

	   "K"
	       See the input values.

	   "O"
	       See the input values.

	   "V"
	       See the input values.

	   "X"
	       This is an initiatory commercial	message	where the response of-
	       fer has expired.

	   "Y"
	       This is an initiatory commercial	message	which has already paid
	       the response.

	   "Z"
	       This is limitedly subsidized commercial message.

	   Length of the value is exactly 1 UTF-8 character if	defined.  That
	   means it's still zero-terminated character string.

       _Bool *dmVODZ;
	   Set to true when downloading	lists of sent or received messages and
	   a particular	message	is a high-volume data message.

       long int	*attsNum;
	   Set	to number of attachments when downloading lists	of sent	or re-
	   ceived messages and a particular message is a high-volume data mes-
	   sage.

       Following members apply to outgoing messages only:

       _Bool *dmOVM;
	   OVM sending mode. Non-OVM dbType  boxes  that  have	dbEffectiveOVM
	   equal  to  true  MUST  select  between  true	 (OVM  mode) and false
	   (non-OVM mode). Otherwise the value is  optional  and  the  default
	   value is true.

       _Bool *dmPublishOwnID;
	   To  allow to	reveal sender's	login name. The	name will be available
	   to the  recipient  through  isds_get_message_sender	function.  The
	   sender's  box  type	and  identifier	will be	always available. This
	   feature exists because more users can have access to	 one  box  and
	   the	recipient could	not tell who was the sender. This value	is op-
	   tional. Default value is false.

       int *idLevel;
	   Specifies which personal information	about the sender should	be re-
	   vealed to the recipient. All	specified information can be  acquired
	   by  the recipient by	using the isds_GetMessageAuthor2 function. The
	   sender's box	type and identifier  will  always  be  available.  The
	   value  of  dmPublishOwnID  MUST  be set to true in order to specify
	   which additional information	the sender wants to disclose. The  ac-
	   tual	  value	  of   the   idLevel   is   the	 sum  of  actual  enum
	   isds_IdLevel_value values.

   isds_FileMetaType
	   typedef enum	isds_FileMetaType;

       Document	type from point	of view	of hierarchy of	documents  in  a  mes-
       sage. Known values are:

       FILEMETATYPE_MAIN
	   Main	document. There	should be exactly one document of this type in
	   a message.

       FILEMETATYPE_ENCLOSURE
	   An appendix.	If a message has more documents, generic-purpose docu-
	   ments other than the	main one should	have this type.

       FILEMETATYPE_SIGNATURE
	   Digital signature. This document is a signature of another document
	   in the message.

       FILEMETATYPE_META
	   XML	document for electronic	document information system, elektron-
	   ick spisov sluba (ESS) in Czech, purpose.

   struct isds_document
	   struct isds_document;

       A message document. Members are:

       _Bool is_xml;
	   True	if the document	is an ISDS XML document. False if the document
	   is an ISDS binary document.

       xmlNodePtr xml_node_list;
	   XML node-set	presenting the XML document content. This is a pointer
	   to first XML	node of	the  XML  representation  of  the  message  as
	   stored  in  xml  member of isds_message structure. Use children and
	   next	members	to walk	through	the document. See libxml2 library doc-
	   umentation for more details.	The xml_node_list will be NULL if  the
	   document is empty. It's valid only if the is_xml is true.

       void *data;
	   A  binary  document	content.  The  encoding	 and format depends on
	   dmMimeType member value. This is valid only if the is_xml is	false.

       size_t data_length;
	   Length of the data buffer in	bytes. It's valid only if  the	is_xml
	   is false.

       char *dmMimeType;
	   MIME	type of	document. This member is mandatory.

       isds_FileMetaType dmFileMetaType;
	   Document type to create document hierarchy inside a message.

       char *dmFileGuid;
	   Message-local document identifier. It can be	used as	a key to refer
	   to  this document by	dmUpFileGuid member from a different document.
	   This	is optional.

       char *dmUpFileGuid;
	   A reference to upper	document identifier stored in dmFileGuid  mem-
	   ber	of  different  document.  You can use isds_find_document_by_id
	   function to locate the upper	document. This value is	optional.

       char *dmFileDescr;
	   Document name (title).  E.g.	 a file	name. This value is mandatory.

       char *dmFormat;
	   A reference to XML format definition	that explains how to interpret
	   the XML document.  E.g.  a URL to an	XML schema. This value is  op-
	   tional.

   struct isds_box_state_period
	   struct isds_box_state_period;

       A box state valid in the	time range. Members are:

       struct isds_timeval *from;
	   Time	range beginning.

       struct isds_timeval *to;
	   Time	range end.

       long int	dbState;
	   Box	state.	 1  means the box is accessible. Other values mean the
	   box is inaccessible.	You can	use isds_DbState enum to identify some
	   states.

   struct isds_dmMessageAuthor
	   struct isds_dmMessageAuthor;

       Response	for GetMessageAuthor2. Members are:

       isds_sender_type	*userType;
	   Message sender type.

       struct isds_PersonName2 *personName;
	   Contains pnGivenNames and pnLastName.

       struct tm *biDate;
	   Date	of birth in local time at birth	place,	only  tm_year,	tm_mon
	   and tm_mday carry sane value.

       char *biCity;
	   City	of birth.

       char *biCounty;
	   County of birth (German: Bezirk, Czech: okres).

       char *adCode;
	   RUIAN address code.

       char *fullAddress;
	   Full	address.

       _Bool *robIdent;
	   Flag	whether	the person is identifiers within the ROB.

   enum	isds_message_type
	   typedef enum	isds_message_type isds_message_type;

       Specifies  the  direction  of  the message - whether the	message	is re-
       ceived or sent:

       MESSAGE_TYPE_RECEIVED
	   Specifies a received	message.

       MESSAGE_TYPE_SENT
	   Specifies a sent message.

   enum	isds_data_format
	   typedef enum	isds_data_format isds_data_format;

       Specifies data format:

       FORMAT_XML
	   Data	in XML format.

       FORMAT_CSV
	   Data	in CSV format.

   enum	isds_asyncReqType
	   typedef enum	isds_asyncReqType isds_asyncReqType;

       Specifies synchronous request type:

       ASYNC_REQ_TYPE_LIST_ERASED
	   Response for	the GetListOfErasedMessages request.

   struct isds_erased_message
	   struct isds_erased_message;

       Describes entries in the	lists of erased	messages. Members are:

       char *dmID;
	   Message ID.

       char *dbIDSender;
	   Box ID of sender.

       char *dmSender;
	   Sender name.

       char *dbIDRecipient;
	   Box ID of recipient.

       char *dmRecipient;
	   Recipient name.

       char *dmAnnotation;
	   Subject (title) of the message.

       enum isds_message_status	*dmMessageStatus;
	   Message state.

       struct isds_timeval *dmDeliveryTime;
	   Time	of delivery into a box.

       struct isds_timeval *dmAcceptanceTime;
	   Time	of acceptance of the message by	a user.

       char *dmType;
	   Message type.

FUNCTIONS
       

	   const char *isds_strerror(const isds_error error);

       

	   struct isds_ctx *isds_ctx_create(void);

SEE ALSO
       libcurl(3), libdatovka(3), time.h(0p)

AUTHORS
       CZ.NIC, z. s. p.	o.
	   Maintains libdatovka. Has been contributing to libisds.

       Petr Psa
	   He has written libisds.

[FIXME:	source]			  04/12/2025		   ISDS.H.LIBDATOVK(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=isds.h.libdatovka&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help