silc_stringprep

SYNOPSIS

    SilcStringprepStatus
    silc_stringprep(const unsigned char *bin, SilcUInt32 bin_len,
                    SilcStringEncoding bin_encoding,
                    const char *profile_name,
                    SilcStringprepFlags flags,
                    unsigned char **out, SilcUInt32 *out_len,
                    SilcStringEncoding out_encoding);

DESCRIPTION

Prepares the input string 'bin' of length 'bin_len' of encoding 'bin_encoding' according to the stringrep profile 'profile_name'. Returns the prepared and allocated string into 'out'. The 'out_len' indicates the length of the prepared string. This returns the SilcStringprepStatus which indicates the status of the preparation. For example, if the input string contains prohibited characters (according to the used profile) this function will return error. The 'flags' however can be used to modify the behavior of this function. Caller must free the returned 'out' string.

The output string will be encoded into the character encoding defined by the 'out_encoding'. This allows caller to have for example the input string as locale specific string and output string as UTF-8 encoded string.

If the 'out' is NULL this function merely performs the preparation process, but does not return anything. In this case this function could be used to for example verify that an input string that ought to have been prepared correctly was done so.

Available profile names:

      SILC_IDENTIFIER_PREP            Prepares SILC identifier strings
      SILC_IDENTIFIER_CH_PREP         Prepares SILC channel name strings
      SILC_IDENTIFIERC_PREP           Casefolds identifier strings
      SILC_CASEFOLD_PREP              Casefolding and normalizing