---
name: "libressl-ASIdentifiers_new"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-ASIdentifiers_new"
---

# libressl-ASIdentifiers\_new(3)

RFC 3779 autonomous system identifier delegation extensions

## NAME

**ASIdentifiers\_new**, **ASIdentifiers\_free**, **d2i\_ASIdentifiers**, **i2d\_ASIdentifiers** – RFC 3779 autonomous system identifier delegation extensions

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

**#include \<openssl/x509v3.h\>**

*ASIdentifiers* *\**\

**ASIdentifiers\_new**(*void*);

*void*\

**ASIdentifiers\_free**(*ASIdentifiers \*asid*);

*ASIdentifiers* *\**\

**d2i\_ASIdentifiers**(*ASIdentifiers \*\*asid*, *const unsigned char \*\*in*, *long len*);

*int*\

**i2d\_ASIdentifiers**(*ASIdentifiers \*asid*, *unsigned char \*\*out*);

## DESCRIPTION

RFC 3779 defines two X.509v3 certificate extensions that allow the delegation of IP addresses and autonomous system (AS) identifiers from the issuer to the subject of the certificate. An *ASIdentifiers* object contains collections of individual AS numbers and ranges of AS numbers to be delegated.

**ASIdentifiers\_new**() allocates and initializes a new, empty *ASIdentifiers* object that can be populated with X509v3\_asid\_add\_id\_or\_range(3). See ASRange\_new(3) for implementation details.

**ASIdentifiers\_free**() frees *asid* including any data contained in it. If *asid* is NULL, no action occurs.

**d2i\_ASIdentifiers**() and **i2d\_ASIdentifiers**() decode and encode ASN.1 *ASIdentifiers* objects as defined in RFC 3779, section 3.2.3.1. For details about the semantics, examples, caveats, and bugs, see ASN1\_item\_d2i(3). In order for the encoding produced by **i2d\_ASIdentifiers**() to conform to RFC 3779, *asid* must be in “canonical form”, see X509v3\_asid\_canonize(3).

## RETURN VALUES

**ASIdentifiers\_new**() returns a new *ASIdentifiers* object or NULL if an error occurs.

**d2i\_ASIdentifiers**() returns an *ASIdentifiers* object or NULL if a decoding or memory allocation error occurs.

**i2d\_ASIdentifiers**() returns the number of bytes successfully encoded or a value \<= 0 if an error occurs.

## SEE ALSO

ASRange\_new(3), [crypto(3)](/crypto/3.md), IPAddressRange\_new(3), X509\_new(3), X509v3\_addr\_add\_inherit(3), X509v3\_addr\_get\_range(3), X509v3\_addr\_inherits(3), X509v3\_addr\_subset(3), X509v3\_addr\_validate\_path(3), X509v3\_asid\_add\_id\_or\_range(3)

## STANDARDS

RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers:

- section 3: Autonomous System Identifier Delegation Extension

RFC 7020: The Internet Numbers Registry System

RFC 7249: Internet Numbers Registries

## HISTORY

These functions first appeared in OpenSSL 0.9.8e and have been available since OpenBSD 7.1.

## BUGS

There are no corresponding functions for the RFC 3779 IP address delegation extension represented by *IPAddrBlocks*.
