From 7f9f1ecb710eac4d65bb02785ddf288cac098323 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 23 May 2018 15:26:19 +0200 Subject: Switch IDNA implementation to libidn2 [BZ #19728] [BZ #19729] [BZ #22247] This provides an implementation of the IDNA2008 standard and fixes CVE-2016-6261, CVE-2016-6263, CVE-2017-14062. --- libidn/idna.h | 96 ----------------------------------------------------------- 1 file changed, 96 deletions(-) delete mode 100644 libidn/idna.h (limited to 'libidn/idna.h') diff --git a/libidn/idna.h b/libidn/idna.h deleted file mode 100644 index c3de0d7..0000000 --- a/libidn/idna.h +++ /dev/null @@ -1,96 +0,0 @@ -/* idna.h Declarations for IDNA. - * Copyright (C) 2002, 2003, 2004 Simon Josefsson - * - * This file is part of GNU Libidn. - * - * GNU Libidn is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * GNU Libidn is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GNU Libidn; if not, see . - */ - -#ifndef _IDNA_H -#define _IDNA_H - -#ifdef __cplusplus -extern "C" -{ -#endif - -#include /* size_t */ -#include /* uint32_t */ - - /* Error codes. */ - typedef enum - { - IDNA_SUCCESS = 0, - IDNA_STRINGPREP_ERROR = 1, - IDNA_PUNYCODE_ERROR = 2, - IDNA_CONTAINS_NON_LDH = 3, - /* Workaround typo in earlier versions. */ - IDNA_CONTAINS_LDH = IDNA_CONTAINS_NON_LDH, - IDNA_CONTAINS_MINUS = 4, - IDNA_INVALID_LENGTH = 5, - IDNA_NO_ACE_PREFIX = 6, - IDNA_ROUNDTRIP_VERIFY_ERROR = 7, - IDNA_CONTAINS_ACE_PREFIX = 8, - IDNA_ICONV_ERROR = 9, - /* Internal errors. */ - IDNA_MALLOC_ERROR = 201, - IDNA_DLOPEN_ERROR = 202 - } Idna_rc; - - /* IDNA flags */ - typedef enum - { - IDNA_ALLOW_UNASSIGNED = 0x0001, - IDNA_USE_STD3_ASCII_RULES = 0x0002 - } Idna_flags; - -#ifndef IDNA_ACE_PREFIX -#define IDNA_ACE_PREFIX "xn--" -#endif - - /* Core functions */ - extern int idna_to_ascii_4i (const uint32_t * in, size_t inlen, - char *out, int flags); - extern int idna_to_unicode_44i (const uint32_t * in, size_t inlen, - uint32_t * out, size_t * outlen, int flags); - - /* Wrappers that handle several labels */ - - extern int idna_to_ascii_4z (const uint32_t * input, - char **output, int flags); - - extern int idna_to_ascii_8z (const char *input, char **output, int flags); - - extern int idna_to_ascii_lz (const char *input, char **output, int flags); - - - extern int idna_to_unicode_4z4z (const uint32_t * input, - uint32_t ** output, int flags); - - extern int idna_to_unicode_8z4z (const char *input, - uint32_t ** output, int flags); - - extern int idna_to_unicode_8z8z (const char *input, - char **output, int flags); - - extern int idna_to_unicode_8zlz (const char *input, - char **output, int flags); - - extern int idna_to_unicode_lzlz (const char *input, - char **output, int flags); - -#ifdef __cplusplus -} -#endif -#endif /* _PUNYCODE_H */ -- cgit v1.1