GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
ASN1_BIT_STRING_SET(3) FreeBSD Library Functions Manual ASN1_BIT_STRING_SET(3)

ASN1_BIT_STRING_set, ASN1_BIT_STRING_set_bit, ASN1_BIT_STRING_get_bit, ASN1_BIT_STRING_check
ASN.1 BIT STRING accessors

#include <openssl/asn1.h>

int
ASN1_BIT_STRING_set(ASN1_BIT_STRING *bitstr, unsigned char *data, int len);

int
ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *bitstr, int bitnumber, int set);

int
ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *bitstr, int bitnumber);

int
ASN1_BIT_STRING_check(ASN1_BIT_STRING *bitstr, const unsigned char *goodbits, int goodbits_len);

ASN1_BIT_STRING_set() sets the length attribute of bitstr to len and copies that number of bytes from data into bitstr, overwriting any previous data, by merely calling ASN1_STRING_set(3). This function does no validation whatsoever. In particular, it neither checks that bitstr is actually of the type V_ASN1_BIT_STRING nor, even if it is, that the data and len arguments make sense for this particular bit string.

If the set argument is non-zero, ASN1_BIT_STRING_set_bit() sets the bit with the given bitnumber in the bitstr; otherwise, it clears that bit. A bitnumber of 0 addresses the most significant bit in the first data byte of bitstr, 7 the least significant bit in the same byte, 8 the most significant bit in the second data byte, and so on.

If setting a bit is requested beyond the last existing data byte, additional bytes are added to the bitstr as needed. After clearing a bit, any trailing NUL bytes are removed from the bitstr.

ASN1_BIT_STRING_get_bit() checks that the bit with the given bitnumber is set in bitstr.

ASN1_BIT_STRING_check() checks that all bits set in bitstr are also set in goodbits. Expressed symbolically, it evaluates:

(bitstr & ~goodbits) == 0

The buffer goodbits is expected to contain goodbits_len bytes.

ASN1_BIT_STRING_set() returns 1 on success or 0 if memory allocation fails or if data is NULL and len is -1 in the same call.

ASN1_BIT_STRING_set_bit() returns 1 on success or 0 if bitstr is NULL or if memory allocation fails.

ASN1_BIT_STRING_get_bit() returns 1 if the bit with the given bitnumber is set in the bitstr or 0 if bitstr is NULL, if bitnumber points beyond the last data byte in bitstr, or if the requested bit is not set.

ASN1_BIT_STRING_check() returns 0 if at least one bit is set in bitstr that is not set in goodbits, or 1 otherwise. In particular, it returns 1 if bitstr is NULL or if no bit is set in bitstr.

ASN1_BIT_STRING_new(3), ASN1_BIT_STRING_num_asc(3), ASN1_STRING_set(3), d2i_ASN1_BIT_STRING(3)

ASN1_BIT_STRING_set() first appeared in SSLeay 0.6.5. ASN1_BIT_STRING_set_bit() and ASN1_BIT_STRING_get_bit() first appeared in SSLeay 0.9.0. These functions have been available since OpenBSD 2.4.

ASN1_BIT_STRING_check() first appeared in OpenSSL 1.0.0 and has have been available since OpenBSD 4.9.

November 19, 2021 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.