ICU 75.1 75.1

uspoof.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 ***************************************************************************
5 * Copyright (C) 2008-2016, International Business Machines Corporation
6 * and others. All Rights Reserved.
7 ***************************************************************************
8 * file name: uspoof.h
9 * encoding: UTF-8
10 * tab size: 8 (not used)
11 * indentation:4
12 *
13 * created on: 2008Feb13
14 * created by: Andy Heninger
15 *
16 * Unicode Spoof Detection
17 */
18
19 #ifndef USPOOF_H
20 #define USPOOF_H
21
22 #include "unicode/ubidi.h"
23 #include "unicode/utypes.h"
24 #include "unicode/uset.h"
25 #include "unicode/parseerr.h"
26
27 #if !UCONFIG_NO_NORMALIZATION
28
29
30 #if U_SHOW_CPLUSPLUS_API
31 #include "unicode/localpointer.h"
32 #include "unicode/unistr.h"
33 #include "unicode/uniset.h"
34 #endif
35
36
421 U_CDECL_BEGIN
422
423 struct USpoofChecker;
427 typedef struct USpoofChecker USpoofChecker;
429 struct USpoofCheckResult;
434 typedef struct USpoofCheckResult USpoofCheckResult;
435
443 typedef enum USpoofChecks {
452 USPOOF_SINGLE_SCRIPT_CONFUSABLE = 1,
453
462 USPOOF_MIXED_SCRIPT_CONFUSABLE = 2,
463
472 USPOOF_WHOLE_SCRIPT_CONFUSABLE = 4,
473
483 USPOOF_CONFUSABLE = USPOOF_SINGLE_SCRIPT_CONFUSABLE | USPOOF_MIXED_SCRIPT_CONFUSABLE | USPOOF_WHOLE_SCRIPT_CONFUSABLE,
484
485 #ifndef U_HIDE_DEPRECATED_API
491 USPOOF_ANY_CASE = 8,
492 #endif /* U_HIDE_DEPRECATED_API */
493
507 USPOOF_RESTRICTION_LEVEL = 16,
508
509 #ifndef U_HIDE_DEPRECATED_API
515 USPOOF_SINGLE_SCRIPT = USPOOF_RESTRICTION_LEVEL,
516 #endif /* U_HIDE_DEPRECATED_API */
517
524 USPOOF_INVISIBLE = 32,
525
531 USPOOF_CHAR_LIMIT = 64,
532
539 USPOOF_MIXED_NUMBERS = 128,
540
560 USPOOF_HIDDEN_OVERLAY = 256,
561
567 USPOOF_ALL_CHECKS = 0xFFFF,
568
581 USPOOF_AUX_INFO = 0x40000000
582
583 } USpoofChecks;
584
585
595 typedef enum URestrictionLevel {
602 USPOOF_ASCII = 0x10000000,
609 USPOOF_SINGLE_SCRIPT_RESTRICTIVE = 0x20000000,
623 USPOOF_HIGHLY_RESTRICTIVE = 0x30000000,
631 USPOOF_MODERATELY_RESTRICTIVE = 0x40000000,
637 USPOOF_MINIMALLY_RESTRICTIVE = 0x50000000,
643 USPOOF_UNRESTRICTIVE = 0x60000000,
649 USPOOF_RESTRICTION_LEVEL_MASK = 0x7F000000,
650 #ifndef U_HIDE_INTERNAL_API
655 USPOOF_UNDEFINED_RESTRICTIVE = -1
656 #endif /* U_HIDE_INTERNAL_API */
657 } URestrictionLevel;
658
669 U_CAPI USpoofChecker * U_EXPORT2
670 uspoof_open(UErrorCode *status);
671
672
694 U_CAPI USpoofChecker * U_EXPORT2
695 uspoof_openFromSerialized(const void *data, int32_t length, int32_t *pActualLength,
696 UErrorCode *pErrorCode);
697
728 U_CAPI USpoofChecker * U_EXPORT2
729 uspoof_openFromSource(const char *confusables, int32_t confusablesLen,
730 const char *confusablesWholeScript, int32_t confusablesWholeScriptLen,
731 int32_t *errType, UParseError *pe, UErrorCode *status);
732
733
739 U_CAPI void U_EXPORT2
740 uspoof_close(USpoofChecker *sc);
741
751 U_CAPI USpoofChecker * U_EXPORT2
752 uspoof_clone(const USpoofChecker *sc, UErrorCode *status);
753
754
795 U_CAPI void U_EXPORT2
796 uspoof_setChecks(USpoofChecker *sc, int32_t checks, UErrorCode *status);
797
809 U_CAPI int32_t U_EXPORT2
810 uspoof_getChecks(const USpoofChecker *sc, UErrorCode *status);
811
823 U_CAPI void U_EXPORT2
824 uspoof_setRestrictionLevel(USpoofChecker *sc, URestrictionLevel restrictionLevel);
825
826
834 U_CAPI URestrictionLevel U_EXPORT2
835 uspoof_getRestrictionLevel(const USpoofChecker *sc);
836
879 U_CAPI void U_EXPORT2
880 uspoof_setAllowedLocales(USpoofChecker *sc, const char *localesList, UErrorCode *status);
881
903 U_CAPI const char * U_EXPORT2
904 uspoof_getAllowedLocales(USpoofChecker *sc, UErrorCode *status);
905
906
925 U_CAPI void U_EXPORT2
926 uspoof_setAllowedChars(USpoofChecker *sc, const USet *chars, UErrorCode *status);
927
928
949 U_CAPI const USet * U_EXPORT2
950 uspoof_getAllowedChars(const USpoofChecker *sc, UErrorCode *status);
951
952
985 U_CAPI int32_t U_EXPORT2
986 uspoof_check(const USpoofChecker *sc,
987 const UChar *id, int32_t length,
988 int32_t *position,
989 UErrorCode *status);
990
991
1024 U_CAPI int32_t U_EXPORT2
1025 uspoof_checkUTF8(const USpoofChecker *sc,
1026 const char *id, int32_t length,
1027 int32_t *position,
1028 UErrorCode *status);
1029
1030
1059 U_CAPI int32_t U_EXPORT2
1060 uspoof_check2(const USpoofChecker *sc,
1061 const UChar* id, int32_t length,
1062 USpoofCheckResult* checkResult,
1063 UErrorCode *status);
1064
1096 U_CAPI int32_t U_EXPORT2
1097 uspoof_check2UTF8(const USpoofChecker *sc,
1098 const char *id, int32_t length,
1099 USpoofCheckResult* checkResult,
1100 UErrorCode *status);
1101
1120 U_CAPI USpoofCheckResult* U_EXPORT2
1121 uspoof_openCheckResult(UErrorCode *status);
1122
1130 U_CAPI void U_EXPORT2
1131 uspoof_closeCheckResult(USpoofCheckResult *checkResult);
1132
1147 U_CAPI int32_t U_EXPORT2
1148 uspoof_getCheckResultChecks(const USpoofCheckResult *checkResult, UErrorCode *status);
1149
1160 U_CAPI URestrictionLevel U_EXPORT2
1161 uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult *checkResult, UErrorCode *status);
1162
1174 U_CAPI const USet* U_EXPORT2
1175 uspoof_getCheckResultNumerics(const USpoofCheckResult *checkResult, UErrorCode *status);
1176
1177
1221 U_CAPI int32_t U_EXPORT2
1222 uspoof_areConfusable(const USpoofChecker *sc,
1223 const UChar *id1, int32_t length1,
1224 const UChar *id2, int32_t length2,
1225 UErrorCode *status);
1226
1227 #ifndef U_HIDE_DRAFT_API
1274 U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusable(const USpoofChecker *sc, UBiDiDirection direction,
1275 const UChar *id1, int32_t length1,
1276 const UChar *id2, int32_t length2,
1277 UErrorCode *status);
1278 #endif /* U_HIDE_DRAFT_API */
1279
1305 U_CAPI int32_t U_EXPORT2
1306 uspoof_areConfusableUTF8(const USpoofChecker *sc,
1307 const char *id1, int32_t length1,
1308 const char *id2, int32_t length2,
1309 UErrorCode *status);
1310
1311 #ifndef U_HIDE_DRAFT_API
1339 U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusableUTF8(const USpoofChecker *sc, UBiDiDirection direction,
1340 const char *id1, int32_t length1,
1341 const char *id2, int32_t length2,
1342 UErrorCode *status);
1343 #endif /* U_HIDE_DRAFT_API */
1344
1376 U_CAPI int32_t U_EXPORT2
1377 uspoof_getSkeleton(const USpoofChecker *sc,
1378 uint32_t type,
1379 const UChar *id, int32_t length,
1380 UChar *dest, int32_t destCapacity,
1381 UErrorCode *status);
1382
1383 #ifndef U_HIDE_DRAFT_API
1416 U_CAPI int32_t U_EXPORT2 uspoof_getBidiSkeleton(const USpoofChecker *sc,
1417 UBiDiDirection direction,
1418 const UChar *id, int32_t length,
1419 UChar *dest, int32_t destCapacity, UErrorCode *status);
1420 #endif /* U_HIDE_DRAFT_API */
1421
1455 U_CAPI int32_t U_EXPORT2
1456 uspoof_getSkeletonUTF8(const USpoofChecker *sc,
1457 uint32_t type,
1458 const char *id, int32_t length,
1459 char *dest, int32_t destCapacity,
1460 UErrorCode *status);
1461
1462 #ifndef U_HIDE_DRAFT_API
1497 U_CAPI int32_t U_EXPORT2 uspoof_getBidiSkeletonUTF8(const USpoofChecker *sc, UBiDiDirection direction,
1498 const char *id, int32_t length, char *dest,
1499 int32_t destCapacity, UErrorCode *status);
1500 #endif /* U_HIDE_DRAFT_API */
1501
1514 U_CAPI const USet * U_EXPORT2
1515 uspoof_getInclusionSet(UErrorCode *status);
1516
1529 U_CAPI const USet * U_EXPORT2
1530 uspoof_getRecommendedSet(UErrorCode *status);
1531
1554 U_CAPI int32_t U_EXPORT2
1555 uspoof_serialize(USpoofChecker *sc,
1556 void *data, int32_t capacity,
1557 UErrorCode *status);
1558
1559 U_CDECL_END
1560
1561 #if U_SHOW_CPLUSPLUS_API
1562
1563 U_NAMESPACE_BEGIN
1564
1579 U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckerPointer, USpoofChecker, uspoof_close);
1597 U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer, USpoofCheckResult, uspoof_closeCheckResult);
1600 U_NAMESPACE_END
1601
1620 U_CAPI void U_EXPORT2
1621 uspoof_setAllowedUnicodeSet(USpoofChecker *sc, const icu::UnicodeSet *chars, UErrorCode *status);
1622
1623
1644 U_CAPI const icu::UnicodeSet * U_EXPORT2
1645 uspoof_getAllowedUnicodeSet(const USpoofChecker *sc, UErrorCode *status);
1646
1675 U_CAPI int32_t U_EXPORT2
1676 uspoof_checkUnicodeString(const USpoofChecker *sc,
1677 const icu::UnicodeString &id,
1678 int32_t *position,
1679 UErrorCode *status);
1680
1706 U_CAPI int32_t U_EXPORT2
1707 uspoof_check2UnicodeString(const USpoofChecker *sc,
1708 const icu::UnicodeString &id,
1709 USpoofCheckResult* checkResult,
1710 UErrorCode *status);
1711
1733 U_CAPI int32_t U_EXPORT2
1734 uspoof_areConfusableUnicodeString(const USpoofChecker *sc,
1735 const icu::UnicodeString &s1,
1736 const icu::UnicodeString &s2,
1737 UErrorCode *status);
1738
1739 #ifndef U_HIDE_DRAFT_API
1763 U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusableUnicodeString(const USpoofChecker *sc,
1764 UBiDiDirection direction,
1765 const icu::UnicodeString &s1,
1766 const icu::UnicodeString &s2,
1767 UErrorCode *status);
1768 #endif /* U_HIDE_DRAFT_API */
1769
1793 U_I18N_API icu::UnicodeString & U_EXPORT2
1794 uspoof_getSkeletonUnicodeString(const USpoofChecker *sc,
1795 uint32_t type,
1796 const icu::UnicodeString &id,
1797 icu::UnicodeString &dest,
1798 UErrorCode *status);
1799
1800 #ifndef U_HIDE_DRAFT_API
1825 U_I18N_API icu::UnicodeString &U_EXPORT2 uspoof_getBidiSkeletonUnicodeString(
1826 const USpoofChecker *sc, UBiDiDirection direction, const icu::UnicodeString &id,
1827 icu::UnicodeString &dest, UErrorCode *status);
1828 #endif /* U_HIDE_DRAFT_API */
1829
1842 U_CAPI const icu::UnicodeSet * U_EXPORT2
1843 uspoof_getInclusionUnicodeSet(UErrorCode *status);
1844
1857 U_CAPI const icu::UnicodeSet * U_EXPORT2
1858 uspoof_getRecommendedUnicodeSet(UErrorCode *status);
1859
1860 #endif /* U_SHOW_CPLUSPLUS_API */
1861
1862 #endif /* UCONFIG_NO_NORMALIZATION */
1863
1864 #endif /* USPOOF_H */
LocalUSpoofCheckResultPointer
"Smart pointer" class, closes a USpoofCheckResult via uspoof_closeCheckResult().
LocalUSpoofCheckerPointer
"Smart pointer" class, closes a USpoofChecker via uspoof_close().
icu::UnicodeSet
A mutable set of Unicode characters and multicharacter strings.
Definition: uniset.h:285
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:296
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:550
parseerr.h
C API: Parse Error Information.
UParseError
A UParseError struct is used to returned detailed information about parsing errors.
Definition: parseerr.h:58
ubidi.h
C API: Bidi algorithm.
UBiDiDirection
UBiDiDirection
UBiDiDirection values indicate the text direction.
Definition: ubidi.h:429
U_CDECL_END
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition: umachine.h:86
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
UChar
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:378
U_CDECL_BEGIN
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
Definition: umachine.h:85
uniset.h
C++ API: Unicode Set.
unistr.h
C++ API: Unicode String.
uset.h
C API: Unicode Set.
USet
struct USet USet
USet is the C API type corresponding to C++ class UnicodeSet.
Definition: uset.h:50
uspoof_setRestrictionLevel
U_CAPI void U_EXPORT2 uspoof_setRestrictionLevel(USpoofChecker *sc, URestrictionLevel restrictionLevel)
Set the loosest restriction level allowed for strings.
uspoof_getInclusionUnicodeSet
U_CAPI const icu::UnicodeSet *U_EXPORT2 uspoof_getInclusionUnicodeSet(UErrorCode *status)
Get the set of Candidate Characters for Inclusion in Identifiers, as defined in http://unicode....
USpoofChecks
USpoofChecks
Enum for the kinds of checks that USpoofChecker can perform.
Definition: uspoof.h:443
USPOOF_MIXED_NUMBERS
@ USPOOF_MIXED_NUMBERS
Check that an identifier does not mix numbers from different numbering systems.
Definition: uspoof.h:539
USPOOF_RESTRICTION_LEVEL
@ USPOOF_RESTRICTION_LEVEL
Check that an identifier is no looser than the specified RestrictionLevel.
Definition: uspoof.h:507
USPOOF_CHAR_LIMIT
@ USPOOF_CHAR_LIMIT
Check that an identifier contains only characters from a specified set of acceptable characters.
Definition: uspoof.h:531
USPOOF_CONFUSABLE
@ USPOOF_CONFUSABLE
Enable this flag in uspoof_setChecks to turn on all types of confusables.
Definition: uspoof.h:483
USPOOF_ALL_CHECKS
@ USPOOF_ALL_CHECKS
Enable all spoof checks.
Definition: uspoof.h:567
USPOOF_SINGLE_SCRIPT
@ USPOOF_SINGLE_SCRIPT
Check that an identifier contains only characters from a single script (plus chars from the common an...
Definition: uspoof.h:515
USPOOF_HIDDEN_OVERLAY
@ USPOOF_HIDDEN_OVERLAY
Check that an identifier does not have a combining character following a character in which that comb...
Definition: uspoof.h:560
USPOOF_INVISIBLE
@ USPOOF_INVISIBLE
Check an identifier for the presence of invisible characters, such as zero-width spaces,...
Definition: uspoof.h:524
USPOOF_MIXED_SCRIPT_CONFUSABLE
@ USPOOF_MIXED_SCRIPT_CONFUSABLE
When performing the two-string uspoof_areConfusable test, this flag in the return value indicates tha...
Definition: uspoof.h:462
USPOOF_AUX_INFO
@ USPOOF_AUX_INFO
Enable the return of auxiliary (non-error) information in the upper bits of the check results value.
Definition: uspoof.h:581
USPOOF_WHOLE_SCRIPT_CONFUSABLE
@ USPOOF_WHOLE_SCRIPT_CONFUSABLE
When performing the two-string uspoof_areConfusable test, this flag in the return value indicates tha...
Definition: uspoof.h:472
USPOOF_SINGLE_SCRIPT_CONFUSABLE
@ USPOOF_SINGLE_SCRIPT_CONFUSABLE
When performing the two-string uspoof_areConfusable test, this flag in the return value indicates tha...
Definition: uspoof.h:452
USPOOF_ANY_CASE
@ USPOOF_ANY_CASE
This flag is deprecated and no longer affects the behavior of SpoofChecker.
Definition: uspoof.h:491
uspoof_getCheckResultChecks
U_CAPI int32_t U_EXPORT2 uspoof_getCheckResultChecks(const USpoofCheckResult *checkResult, UErrorCode *status)
Indicates which of the spoof check(s) have failed.
uspoof_checkUnicodeString
U_CAPI int32_t U_EXPORT2 uspoof_checkUnicodeString(const USpoofChecker *sc, const icu::UnicodeString &id, int32_t *position, UErrorCode *status)
Check the specified string for possible security issues.
uspoof_getSkeleton
U_CAPI int32_t U_EXPORT2 uspoof_getSkeleton(const USpoofChecker *sc, uint32_t type, const UChar *id, int32_t length, UChar *dest, int32_t destCapacity, UErrorCode *status)
Get the "skeleton" for an identifier.
uspoof_setAllowedChars
U_CAPI void U_EXPORT2 uspoof_setAllowedChars(USpoofChecker *sc, const USet *chars, UErrorCode *status)
Limit the acceptable characters to those specified by a Unicode Set.
uspoof_getCheckResultNumerics
U_CAPI const USet *U_EXPORT2 uspoof_getCheckResultNumerics(const USpoofCheckResult *checkResult, UErrorCode *status)
Gets the set of numerics found in the string, if the USPOOF_MIXED_NUMBERS check was enabled; otherwis...
uspoof_setAllowedUnicodeSet
U_NAMESPACE_END U_CAPI void U_EXPORT2 uspoof_setAllowedUnicodeSet(USpoofChecker *sc, const icu::UnicodeSet *chars, UErrorCode *status)
Limit the acceptable characters to those specified by a Unicode Set.
uspoof_getBidiSkeletonUTF8
U_CAPI int32_t U_EXPORT2 uspoof_getBidiSkeletonUTF8(const USpoofChecker *sc, UBiDiDirection direction, const char *id, int32_t length, char *dest, int32_t destCapacity, UErrorCode *status)
Get the "bidiSkeleton" for an identifier and a direction.
uspoof_getAllowedChars
U_CAPI const USet *U_EXPORT2 uspoof_getAllowedChars(const USpoofChecker *sc, UErrorCode *status)
Get a USet for the characters permitted in an identifier.
uspoof_areBidiConfusable
U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusable(const USpoofChecker *sc, UBiDiDirection direction, const UChar *id1, int32_t length1, const UChar *id2, int32_t length2, UErrorCode *status)
Check whether two specified strings are visually confusable when displayed in a context with the give...
uspoof_clone
U_CAPI USpoofChecker * uspoof_clone(const USpoofChecker *sc, UErrorCode *status)
Clone a Spoof Checker.
URestrictionLevel
URestrictionLevel
Constants from UTS #39 for use in uspoof_setRestrictionLevel, and for returned identifier restriction...
Definition: uspoof.h:595
USPOOF_SINGLE_SCRIPT_RESTRICTIVE
@ USPOOF_SINGLE_SCRIPT_RESTRICTIVE
The string classifies as ASCII-Only, or all characters in the string are in the identifier profile an...
Definition: uspoof.h:609
USPOOF_MODERATELY_RESTRICTIVE
@ USPOOF_MODERATELY_RESTRICTIVE
The string classifies as Highly Restrictive, or all characters in the string are in the identifier pr...
Definition: uspoof.h:631
USPOOF_ASCII
@ USPOOF_ASCII
All characters in the string are in the identifier profile and all characters in the string are in th...
Definition: uspoof.h:602
USPOOF_UNDEFINED_RESTRICTIVE
@ USPOOF_UNDEFINED_RESTRICTIVE
An undefined restriction level.
Definition: uspoof.h:655
USPOOF_RESTRICTION_LEVEL_MASK
@ USPOOF_RESTRICTION_LEVEL_MASK
Mask for selecting the Restriction Level bits from the return value of uspoof_check.
Definition: uspoof.h:649
USPOOF_MINIMALLY_RESTRICTIVE
@ USPOOF_MINIMALLY_RESTRICTIVE
All characters in the string are in the identifier profile.
Definition: uspoof.h:637
USPOOF_HIGHLY_RESTRICTIVE
@ USPOOF_HIGHLY_RESTRICTIVE
The string classifies as Single Script, or all characters in the string are in the identifier profile...
Definition: uspoof.h:623
USPOOF_UNRESTRICTIVE
@ USPOOF_UNRESTRICTIVE
Any valid identifiers, including characters outside of the Identifier Profile.
Definition: uspoof.h:643
uspoof_getSkeletonUTF8
U_CAPI int32_t U_EXPORT2 uspoof_getSkeletonUTF8(const USpoofChecker *sc, uint32_t type, const char *id, int32_t length, char *dest, int32_t destCapacity, UErrorCode *status)
Get the "skeleton" for an identifier.
uspoof_getBidiSkeleton
U_CAPI int32_t U_EXPORT2 uspoof_getBidiSkeleton(const USpoofChecker *sc, UBiDiDirection direction, const UChar *id, int32_t length, UChar *dest, int32_t destCapacity, UErrorCode *status)
Get the "bidiSkeleton" for an identifier and a direction.
uspoof_getRestrictionLevel
U_CAPI URestrictionLevel U_EXPORT2 uspoof_getRestrictionLevel(const USpoofChecker *sc)
Get the Restriction Level that will be tested if the checks include USPOOF_RESTRICTION_LEVEL.
uspoof_setAllowedLocales
U_CAPI void U_EXPORT2 uspoof_setAllowedLocales(USpoofChecker *sc, const char *localesList, UErrorCode *status)
Limit characters that are acceptable in identifiers being checked to those normally used with the lan...
uspoof_getCheckResultRestrictionLevel
U_CAPI URestrictionLevel U_EXPORT2 uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult *checkResult, UErrorCode *status)
Gets the restriction level that the text meets, if the USPOOF_RESTRICTION_LEVEL check was enabled; ot...
uspoof_setChecks
U_CAPI void U_EXPORT2 uspoof_setChecks(USpoofChecker *sc, int32_t checks, UErrorCode *status)
Specify the bitmask of checks that will be performed by uspoof_check.
uspoof_getAllowedUnicodeSet
U_CAPI const icu::UnicodeSet *U_EXPORT2 uspoof_getAllowedUnicodeSet(const USpoofChecker *sc, UErrorCode *status)
Get a UnicodeSet for the characters permitted in an identifier.
uspoof_getChecks
U_CAPI int32_t U_EXPORT2 uspoof_getChecks(const USpoofChecker *sc, UErrorCode *status)
Get the set of checks that this Spoof Checker has been configured to perform.
uspoof_closeCheckResult
U_CAPI void U_EXPORT2 uspoof_closeCheckResult(USpoofCheckResult *checkResult)
Close a USpoofCheckResult, freeing any memory that was being held by its implementation.
uspoof_check2UTF8
U_CAPI int32_t U_EXPORT2 uspoof_check2UTF8(const USpoofChecker *sc, const char *id, int32_t length, USpoofCheckResult *checkResult, UErrorCode *status)
Check the specified string for possible security issues.
uspoof_areConfusableUnicodeString
U_CAPI int32_t U_EXPORT2 uspoof_areConfusableUnicodeString(const USpoofChecker *sc, const icu::UnicodeString &s1, const icu::UnicodeString &s2, UErrorCode *status)
A version of uspoof_areConfusable accepting UnicodeStrings.
uspoof_getSkeletonUnicodeString
U_I18N_API icu::UnicodeString &U_EXPORT2 uspoof_getSkeletonUnicodeString(const USpoofChecker *sc, uint32_t type, const icu::UnicodeString &id, icu::UnicodeString &dest, UErrorCode *status)
Get the "skeleton" for an identifier.
uspoof_areConfusableUTF8
U_CAPI int32_t U_EXPORT2 uspoof_areConfusableUTF8(const USpoofChecker *sc, const char *id1, int32_t length1, const char *id2, int32_t length2, UErrorCode *status)
A version of uspoof_areConfusable accepting strings in UTF-8 format.
uspoof_openCheckResult
U_CAPI USpoofCheckResult *U_EXPORT2 uspoof_openCheckResult(UErrorCode *status)
Create a USpoofCheckResult, used by the uspoof_check2 class of functions to return information about ...
uspoof_getRecommendedSet
U_CAPI const USet *U_EXPORT2 uspoof_getRecommendedSet(UErrorCode *status)
Get the set of characters from Recommended Scripts for Inclusion in Identifiers, as defined in http:/...
uspoof_getInclusionSet
U_CAPI const USet *U_EXPORT2 uspoof_getInclusionSet(UErrorCode *status)
Get the set of Candidate Characters for Inclusion in Identifiers, as defined in http://unicode....
uspoof_serialize
U_CAPI int32_t U_EXPORT2 uspoof_serialize(USpoofChecker *sc, void *data, int32_t capacity, UErrorCode *status)
Serialize the data for a spoof detector into a chunk of memory.
USpoofCheckResult
struct USpoofCheckResult USpoofCheckResult
Definition: uspoof.h:434
uspoof_getBidiSkeletonUnicodeString
U_I18N_API icu::UnicodeString &U_EXPORT2 uspoof_getBidiSkeletonUnicodeString(const USpoofChecker *sc, UBiDiDirection direction, const icu::UnicodeString &id, icu::UnicodeString &dest, UErrorCode *status)
Get the "bidiSkeleton" for an identifier and a direction.
uspoof_openFromSerialized
U_CAPI USpoofChecker * uspoof_openFromSerialized(const void *data, int32_t length, int32_t *pActualLength, UErrorCode *pErrorCode)
Open a Spoof checker from its serialized form, stored in 32-bit-aligned memory.
uspoof_getAllowedLocales
U_CAPI const char *U_EXPORT2 uspoof_getAllowedLocales(USpoofChecker *sc, UErrorCode *status)
Get a list of locales for the scripts that are acceptable in strings to be checked.
uspoof_areBidiConfusableUnicodeString
U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusableUnicodeString(const USpoofChecker *sc, UBiDiDirection direction, const icu::UnicodeString &s1, const icu::UnicodeString &s2, UErrorCode *status)
A version of uspoof_areBidiConfusable accepting UnicodeStrings.
uspoof_check2
U_CAPI int32_t U_EXPORT2 uspoof_check2(const USpoofChecker *sc, const UChar *id, int32_t length, USpoofCheckResult *checkResult, UErrorCode *status)
Check the specified string for possible security issues.
uspoof_checkUTF8
U_CAPI int32_t U_EXPORT2 uspoof_checkUTF8(const USpoofChecker *sc, const char *id, int32_t length, int32_t *position, UErrorCode *status)
Check the specified string for possible security issues.
USpoofChecker
struct USpoofChecker USpoofChecker
typedef for C of USpoofChecker
Definition: uspoof.h:427
uspoof_areBidiConfusableUTF8
U_CAPI uint32_t U_EXPORT2 uspoof_areBidiConfusableUTF8(const USpoofChecker *sc, UBiDiDirection direction, const char *id1, int32_t length1, const char *id2, int32_t length2, UErrorCode *status)
A version of uspoof_areBidiConfusable accepting strings in UTF-8 format.
uspoof_getRecommendedUnicodeSet
U_CAPI const icu::UnicodeSet *U_EXPORT2 uspoof_getRecommendedUnicodeSet(UErrorCode *status)
Get the set of characters from Recommended Scripts for Inclusion in Identifiers, as defined in http:/...
uspoof_open
U_CAPI USpoofChecker * uspoof_open(UErrorCode *status)
Create a Unicode Spoof Checker, configured to perform all checks except for USPOOF_LOCALE_LIMIT and U...
uspoof_close
U_CAPI void uspoof_close(USpoofChecker *sc)
Close a Spoof Checker, freeing any memory that was being held by its implementation.
uspoof_check
U_CAPI int32_t U_EXPORT2 uspoof_check(const USpoofChecker *sc, const UChar *id, int32_t length, int32_t *position, UErrorCode *status)
Check the specified string for possible security issues.
uspoof_openFromSource
U_CAPI USpoofChecker * uspoof_openFromSource(const char *confusables, int32_t confusablesLen, const char *confusablesWholeScript, int32_t confusablesWholeScriptLen, int32_t *errType, UParseError *pe, UErrorCode *status)
Open a Spoof Checker from the source form of the spoof data.
uspoof_areConfusable
U_CAPI int32_t U_EXPORT2 uspoof_areConfusable(const USpoofChecker *sc, const UChar *id1, int32_t length1, const UChar *id2, int32_t length2, UErrorCode *status)
Check whether two specified strings are visually confusable.
uspoof_check2UnicodeString
U_CAPI int32_t U_EXPORT2 uspoof_check2UnicodeString(const USpoofChecker *sc, const icu::UnicodeString &id, USpoofCheckResult *checkResult, UErrorCode *status)
Check the specified string for possible security issues.
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
U_I18N_API
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition: utypes.h:301