![]() |
PIVX Core
5.6.99
P2P Digital Currency
|
#include "support/allocators/secure.h"#include "span.h"#include <algorithm>#include <iterator>#include <stdint.h>#include <string>#include <vector>Go to the source code of this file.
Macros | |
| #define | BEGIN(a) ((char*)&(a)) |
| Utilities for converting data from/to strings. More... | |
| #define | END(a) ((char*)&((&(a))[1])) |
| #define | UBEGIN(a) ((unsigned char*)&(a)) |
| #define | UEND(a) ((unsigned char*)&((&(a))[1])) |
| #define | ARRAYLEN(array) (sizeof(array) / sizeof((array)[0])) |
Enumerations | |
| enum | SafeChars { SAFE_CHARS_DEFAULT , SAFE_CHARS_UA_COMMENT , SAFE_CHARS_FILENAME } |
| Used by SanitizeString() More... | |
Functions | |
| std::string | SanitizeString (const std::string &str, int rule=SAFE_CHARS_DEFAULT) |
| Remove unsafe chars. More... | |
| bool | validateURL (const std::string &strURL, std::string &strErr, unsigned int maxSize=64) |
| Check URL format for conformance for validity to a defined pattern. More... | |
| bool | validateURL (const std::string &strURL) |
| std::vector< unsigned char > | ParseHex (const char *psz) |
| std::vector< unsigned char > | ParseHex (const std::string &str) |
| signed char | HexDigit (char c) |
| bool | IsHex (const std::string &str) |
| std::vector< unsigned char > | DecodeBase64 (const char *p, bool *pfInvalid=nullptr) |
| std::string | DecodeBase64 (const std::string &str) |
| std::string | EncodeBase64 (Span< const unsigned char > input) |
| std::string | EncodeBase64 (const std::string &str) |
| std::vector< unsigned char > | DecodeBase32 (const char *p, bool *pfInvalid=nullptr) |
| std::string | DecodeBase32 (const std::string &str) |
| std::string | EncodeBase32 (Span< const unsigned char > input, bool pad=true) |
| Base32 encode. More... | |
| std::string | EncodeBase32 (const std::string &str, bool pad=true) |
| Base32 encode. More... | |
| std::string | i64tostr (int64_t n) |
| std::string | itostr (int n) |
| int64_t | atoi64 (const char *psz) |
| int64_t | atoi64 (const std::string &str) |
| int | atoi (const std::string &str) |
| constexpr bool | IsDigit (char c) |
| Tests if the given character is a decimal digit. More... | |
| bool | ParseInt32 (const std::string &str, int32_t *out) |
| Convert string to signed 32-bit integer with strict parse error feedback. More... | |
| bool | ParseInt64 (const std::string &str, int64_t *out) |
| Convert string to signed 64-bit integer with strict parse error feedback. More... | |
| bool | ParseUInt8 (const std::string &str, uint8_t *out) |
| Convert decimal string to unsigned 8-bit integer with strict parse error feedback. More... | |
| bool | ParseUInt32 (const std::string &str, uint32_t *out) |
| Convert decimal string to unsigned 32-bit integer with strict parse error feedback. More... | |
| bool | ParseDouble (const std::string &str, double *out) |
| Convert string to double with strict parse error feedback. More... | |
| template<typename T > | |
| T | FindFirstNonZero (T itbegin, T itend) |
| std::string | HexStr (const Span< const uint8_t > s) |
| Convert a span of bytes to a lower-case hexadecimal string. More... | |
| std::string | HexStr (const Span< const char > s) |
| std::string | ReverseEndianString (std::string in) |
| Reverse the endianness of a string. More... | |
| std::string | FormatParagraph (const std::string in, size_t width=79, size_t indent=0) |
| Format a paragraph of text to a fixed width, adding spaces for indentation to any added line. More... | |
| template<typename T > | |
| bool | TimingResistantEqual (const T &a, const T &b) |
| Timing-attack-resistant comparison. More... | |
| template<int frombits, int tobits, bool pad, typename O , typename I > | |
| bool | ConvertBits (const O &outfn, I it, I end) |
| Convert from one power-of-2 number base to another. More... | |
| bool | ParseFixedPoint (const std::string &val, int decimals, int64_t *amount_out) |
| Parse number as fixed point according to JSON number syntax. More... | |
| constexpr unsigned char | ToLower (unsigned char c) |
| Converts the given character to its lowercase equivalent. More... | |
| std::string | ToLower (const std::string &str) |
| Returns the lowercase equivalent of the given string. More... | |
| void | Downcase (std::string &str) |
| Converts the given string to its lowercase equivalent. More... | |
| constexpr unsigned char | ToUpper (unsigned char c) |
| Converts the given character to its uppercase equivalent. More... | |
| std::string | ToUpper (const std::string &str) |
| Returns the uppercase equivalent of the given string. More... | |
| std::string | Capitalize (std::string str) |
| Capitalizes the first character of the given string. More... | |
| bool | IsValidUTF8 (const std::string &str) |
| Checks for valid 4-byte UTF-8 encoding in a string. More... | |
| #define ARRAYLEN | ( | array | ) | (sizeof(array) / sizeof((array)[0])) |
Definition at line 26 of file utilstrencodings.h.
| #define BEGIN | ( | a | ) | ((char*)&(a)) |
Utilities for converting data from/to strings.
Definition at line 22 of file utilstrencodings.h.
| #define END | ( | a | ) | ((char*)&((&(a))[1])) |
Definition at line 23 of file utilstrencodings.h.
| #define UBEGIN | ( | a | ) | ((unsigned char*)&(a)) |
Definition at line 24 of file utilstrencodings.h.
| #define UEND | ( | a | ) | ((unsigned char*)&((&(a))[1])) |
Definition at line 25 of file utilstrencodings.h.
| enum SafeChars |
Used by SanitizeString()
| Enumerator | |
|---|---|
| SAFE_CHARS_DEFAULT | The full set of allowed chars. |
| SAFE_CHARS_UA_COMMENT | BIP-0014 subset. |
| SAFE_CHARS_FILENAME | Chars allowed in filenames. |
Definition at line 29 of file utilstrencodings.h.
| int atoi | ( | const std::string & | str | ) |
| int64_t atoi64 | ( | const char * | psz | ) |
| int64_t atoi64 | ( | const std::string & | str | ) |
Definition at line 403 of file utilstrencodings.cpp.
| std::string Capitalize | ( | std::string | str | ) |
Capitalizes the first character of the given string.
This function is locale independent. It only capitalizes the first character of the argument if it has an uppercase equivalent in the standard 7-bit ASCII range.
| [in] | str | the string to capitalize. |
Definition at line 556 of file utilstrencodings.cpp.
| bool ConvertBits | ( | const O & | outfn, |
| I | it, | ||
| I | end | ||
| ) |
Convert from one power-of-2 number base to another.
Examples using ConvertBits<8, 5, true>(): 000000 -> 0000000000 202020 -> 0400100200 757575 -> 0e151a170a abcdef -> 150f061e1e ffffff -> 1f1f1f1f1e
Definition at line 188 of file utilstrencodings.h.
| std::vector<unsigned char> DecodeBase32 | ( | const char * | p, |
| bool * | pfInvalid = nullptr |
||
| ) |
| std::string DecodeBase32 | ( | const std::string & | str | ) |
| std::vector<unsigned char> DecodeBase64 | ( | const char * | p, |
| bool * | pfInvalid = nullptr |
||
| ) |
| std::string DecodeBase64 | ( | const std::string & | str | ) |
| void Downcase | ( | std::string & | str | ) |
Converts the given string to its lowercase equivalent.
This function is locale independent. It only converts uppercase characters in the standard 7-bit ASCII range.
| [in,out] | str | the string to convert to lowercase. |
Definition at line 537 of file utilstrencodings.cpp.
| std::string EncodeBase32 | ( | const std::string & | str, |
| bool | pad = true |
||
| ) |
Base32 encode.
If pad is true, then the output will be padded with '=' so that its length is a multiple of 8.
Definition at line 208 of file utilstrencodings.cpp.
Base32 encode.
If pad is true, then the output will be padded with '=' so that its length is a multiple of 8.
Definition at line 193 of file utilstrencodings.cpp.
| std::string EncodeBase64 | ( | const std::string & | str | ) |
| std::string EncodeBase64 | ( | Span< const unsigned char > | input | ) |
Definition at line 124 of file utilstrencodings.cpp.
| std::string FormatParagraph | ( | const std::string | in, |
| size_t | width = 79, |
||
| size_t | indent = 0 |
||
| ) |
Format a paragraph of text to a fixed width, adding spaces for indentation to any added line.
Definition at line 352 of file utilstrencodings.cpp.
| signed char HexDigit | ( | char | c | ) |
|
inline |
| std::string HexStr | ( | const Span< const uint8_t > | s | ) |
Convert a span of bytes to a lower-case hexadecimal string.
Definition at line 563 of file utilstrencodings.cpp.
| std::string i64tostr | ( | int64_t | n | ) |
Definition at line 384 of file utilstrencodings.cpp.
|
constexpr |
Tests if the given character is a decimal digit.
| [in] | c | character to test |
Definition at line 91 of file utilstrencodings.h.
| bool IsHex | ( | const std::string & | str | ) |
Definition at line 90 of file utilstrencodings.cpp.
| bool IsValidUTF8 | ( | const std::string & | str | ) |
Checks for valid 4-byte UTF-8 encoding in a string.
| [in] | str | the string to check. |
Definition at line 577 of file utilstrencodings.cpp.
| std::string itostr | ( | int | n | ) |
Definition at line 389 of file utilstrencodings.cpp.
| bool ParseDouble | ( | const std::string & | str, |
| double * | out | ||
| ) |
Convert string to double with strict parse error feedback.
Definition at line 338 of file utilstrencodings.cpp.
| bool ParseFixedPoint | ( | const std::string & | val, |
| int | decimals, | ||
| int64_t * | amount_out | ||
| ) |
Parse number as fixed point according to JSON number syntax.
See http://json.org/number.gif
Definition at line 445 of file utilstrencodings.cpp.
| std::vector<unsigned char> ParseHex | ( | const char * | psz | ) |
Definition at line 99 of file utilstrencodings.cpp.
| std::vector<unsigned char> ParseHex | ( | const std::string & | str | ) |
| bool ParseInt32 | ( | const std::string & | str, |
| int32_t * | out | ||
| ) |
Convert string to signed 32-bit integer with strict parse error feedback.
Definition at line 278 of file utilstrencodings.cpp.
| bool ParseInt64 | ( | const std::string & | str, |
| int64_t * | out | ||
| ) |
Convert string to signed 64-bit integer with strict parse error feedback.
Definition at line 294 of file utilstrencodings.cpp.
| bool ParseUInt32 | ( | const std::string & | str, |
| uint32_t * | out | ||
| ) |
Convert decimal string to unsigned 32-bit integer with strict parse error feedback.
Definition at line 321 of file utilstrencodings.cpp.
| bool ParseUInt8 | ( | const std::string & | str, |
| uint8_t * | out | ||
| ) |
Convert decimal string to unsigned 8-bit integer with strict parse error feedback.
Definition at line 309 of file utilstrencodings.cpp.
|
inline |
Reverse the endianness of a string.
Definition at line 145 of file utilstrencodings.h.
| std::string SanitizeString | ( | const std::string & | str, |
| int | rule = SAFE_CHARS_DEFAULT |
||
| ) |
Remove unsafe chars.
Safe chars chosen to allow simple messages/URLs/email addresses, but avoid anything even possibly remotely dangerous like & or >
| [in] | str | The string to sanitize |
| [in] | rule | The set of safe chars to choose (default: least restrictive) |
Definition at line 30 of file utilstrencodings.cpp.
Timing-attack-resistant comparison.
Takes time proportional to length of first argument.
Definition at line 168 of file utilstrencodings.h.
| std::string ToLower | ( | const std::string & | str | ) |
Returns the lowercase equivalent of the given string.
This function is locale independent. It only converts uppercase characters in the standard 7-bit ASCII range. This is a feature, not a limitation.
| [in] | str | the string to convert to lowercase. |
Definition at line 542 of file utilstrencodings.cpp.
|
constexpr |
Converts the given character to its lowercase equivalent.
This function is locale independent. It only converts uppercase characters in the standard 7-bit ASCII range.
| [in] | c | the character to convert to lowercase. |
Definition at line 226 of file utilstrencodings.h.
| std::string ToUpper | ( | const std::string & | str | ) |
Returns the uppercase equivalent of the given string.
This function is locale independent. It only converts lowercase characters in the standard 7-bit ASCII range. This is a feature, not a limitation.
| [in] | str | the string to convert to uppercase. |
Definition at line 549 of file utilstrencodings.cpp.
|
constexpr |
Converts the given character to its uppercase equivalent.
This function is locale independent. It only converts lowercase characters in the standard 7-bit ASCII range.
| [in] | c | the character to convert to uppercase. |
Definition at line 258 of file utilstrencodings.h.
| bool validateURL | ( | const std::string & | strURL | ) |
| bool validateURL | ( | const std::string & | strURL, |
| std::string & | strErr, | ||
| unsigned int | maxSize = 64 |
||
| ) |
Check URL format for conformance for validity to a defined pattern.
| [in] | strURL | The string to be processed for validity |
| [in] | strErr | A string that will be loaded with any validation error message |
| [in] | maxSize | An unsigned int, defaulted to 64, to restrict the length |
Definition at line 47 of file utilstrencodings.cpp.