Skip to main content
  • Home
  • login
  • Browse the archive

    swh mirror partner logo
swh logo
SoftwareHeritage
Software
Heritage
Mirror
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • b852cdb
  • /
  • ossl_punycode_decode.pod
Raw File
Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge Iframe embedding
swh:1:cnt:b9e2f648892d0ea17a7c42e5080ca16dbdf6479e
directory badge Iframe embedding
swh:1:dir:b852cdbfbe642337072184c234fe8e8c5c2d9825
ossl_punycode_decode.pod
=pod

=head1 NAME

ossl_punycode_decode, ossl_a2ulabel, ossl_a2ucompare
- internal punycode-related functions

=head1 SYNOPSIS

  #include "crypto/punycode.h"

  int ossl_punycode_decode(const char *pEncoded, const size_t enc_len,
                           unsigned int *pDecoded, unsigned int *pout_length);

  int ossl_a2ulabel(const char *in, char *out, size_t outlen);

  int ossl_a2ucompare(const char *a, const char *u);

=head1 DESCRIPTION

PUNYCODE encoding introduced in RFCs 3490-3492 is widely used for
representation of hostnames in ASCII-only format. Some specifications,
such as RFC 8398, require comparison of hostnames encoded in UTF-8 charset.

ossl_a2ulabel() decodes NUL-terminated hostname from PUNYCODE to UTF-8,
using a provided buffer for output.  The output buffer is NUL-terminated.

ossl_a2ucompare() accepts two NUL-terminated hostnames, decodes the 1st
from PUNYCODE to UTF-8 and compares it with the 2nd one as is.

ossl_punycode_decode() decodes one label (one dot-separated part) from
a hostname, with stripped PUNYCODE marker I<xn-->.

=head1 RETURN VALUES

ossl_a2ulabel() returns 1 on success, 0 if the output buffer is too small and
-1 if an invalid PUNYCODE string is passed or another error occurs.

ossl_a2ucompare() returns 1 on non-equal strings, 0 on equal strings,
-1 when an invalid PUNYCODE string is passed or another error occurs.

ossl_punycode_decode() returns 1 on success, 0 on error. On success,
*pout_length contains the number of codepoints decoded.

=head1 HISTORY

The functions described here were all added in OpenSSL 3.0.

=head1 COPYRIGHT

Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License").  You may not use
this file except in compliance with the License.  You can obtain a copy
in the file LICENSE in the source distribution or at
L<https://www.openssl.org/source/license.html>.

=cut

ENEA — Copyright (C), ENEA. License: GNU AGPLv3+.
Legal notes  ::  JavaScript license information ::  Web API

back to top