📄 asn1_string_length.pod
字号:
=pod=head1 NAMEASN1_STRING_dup, ASN1_STRING_cmp, ASN1_STRING_set, ASN1_STRING_length,ASN1_STRING_length_set, ASN1_STRING_type, ASN1_STRING_data -ASN1_STRING utility functions=head1 SYNOPSIS int ASN1_STRING_length(ASN1_STRING *x); unsigned char * ASN1_STRING_data(ASN1_STRING *x); ASN1_STRING * ASN1_STRING_dup(ASN1_STRING *a); int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b); int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); int ASN1_STRING_type(ASN1_STRING *x); int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);=head1 DESCRIPTIONThese functions allow an B<ASN1_STRING> structure to be manipulated.ASN1_STRING_length() returns the length of the content of B<x>.ASN1_STRING_data() returns an internal pointer to the data of B<x>.Since this is an internal pointer it should B<not> be freed ormodified in any way.ASN1_STRING_dup() returns a copy of the structure B<a>.ASN1_STRING_cmp() compares B<a> and B<b> returning 0 if the twoare identical. The string types and content are compared.ASN1_STRING_set() sets the data of string B<str> to the bufferB<data> or length B<len>. The supplied data is copied. If B<len>is -1 then the length is determined by strlen(data).ASN1_STRING_type() returns the type of B<x>, using standard constantssuch as B<V_ASN1_OCTET_STRING>.ASN1_STRING_to_UTF8() converts the string B<in> to UTF8 format, theconverted data is allocated in a buffer in B<*out>. The length ofB<out> is returned or a negative error code. The buffer B<*out>should be free using OPENSSL_free().=head1 NOTESAlmost all ASN1 types in OpenSSL are represented as an B<ASN1_STRING>structure. Other types such as B<ASN1_OCTET_STRING> are simply typedefedto B<ASN1_STRING> and the functions call the B<ASN1_STRING> equivalents.B<ASN1_STRING> is also used for some B<CHOICE> types which consistentirely of primitive string types such as B<DirectoryString> andB<Time>.These functions should B<not> be used to examine or modify B<ASN1_INTEGER>or B<ASN1_ENUMERATED> types: the relevant B<INTEGER> or B<ENUMERATED>utility functions should be used instead.In general it cannot be assumed that the data returned by ASN1_STRING_data()is null terminated or does not contain embedded nulls. The actual formatof the data will depend on the actual string type itself: for examplefor and IA5String the data will be ASCII, for a BMPString two bytes percharacter in big endian format, UTF8String will be in UTF8 format.Similar care should be take to ensure the data is in the correct formatwhen calling ASN1_STRING_set().=head1 RETURN VALUES=head1 SEE ALSOL<ERR_get_error(3)|ERR_get_error(3)>=head1 HISTORY=cut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -