---
name: "libressl-ENGINE_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-ENGINE_new"
---

# libressl-ENGINE\_new(3)

ENGINE stub functions

## NAME

**ENGINE\_new**, **ENGINE\_free**, **ENGINE\_init**, **ENGINE\_finish**, **ENGINE\_ctrl\_cmd**, **ENGINE\_ctrl\_cmd\_string**, **ENGINE\_by\_id**, **ENGINE\_get\_id**, **ENGINE\_get\_name**, **ENGINE\_set\_default**, **ENGINE\_get\_default\_RSA**, **ENGINE\_set\_default\_RSA**, **ENGINE\_load\_private\_key**, **ENGINE\_load\_public\_key**, **ENGINE\_load\_builtin\_engines**, **ENGINE\_load\_dynamic**, **ENGINE\_load\_openssl**, **ENGINE\_register\_all\_complete**, **ENGINE\_cleanup** – ENGINE stub functions

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

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

*ENGINE* *\**\

**ENGINE\_new**(*void*);

*int*\

**ENGINE\_free**(*ENGINE \*engine*);

*int*\

**ENGINE\_init**(*ENGINE \*engine*);

*int*\

**ENGINE\_finish**(*ENGINE \*engine*);

*int*\

**ENGINE\_ctrl\_cmd**(*ENGINE \*engine*, *const char \*cmd\_name*, *long i*, *void \*p*, *void (\*f)(void)*, *int cmd\_optional*);

*int*\

**ENGINE\_ctrl\_cmd\_string**(*ENGINE \*engine*, *const char \*cmd\_name*, *const char \*arg*, *int cmd\_optional*);

*ENGINE* *\**\

**ENGINE\_by\_id**(*const char \*id*);

*const* *char* *\**\

**ENGINE\_get\_id**(*const ENGINE \*engine*);

*const* *char* *\**\

**ENGINE\_get\_name**(*const ENGINE \*engine*);

*int*\

**ENGINE\_set\_default**(*ENGINE \*engine*, *unsigned int flags*);

*ENGINE* *\**\

**ENGINE\_get\_default\_RSA**(*ENGINE \*engine*);

*int*\

**ENGINE\_set\_default\_RSA**(*ENGINE \*engine*);

*EVP\_PKEY* *\**\

**ENGINE\_load\_private\_key**(*ENGINE \*engine*, *const char \*key\_id*, *UI\_METHOD \*ui\_method*, *void \*callback\_data*);

*EVP\_PKEY* *\**\

**ENGINE\_load\_public\_key**(*ENGINE \*engine*, *const char \*key\_id*, *UI\_METHOD \*ui\_method*, *void \*callback\_data*);

*void*\

**ENGINE\_load\_builtin\_engines**(*void*);

*void*\

**ENGINE\_load\_dynamic**(*void*);

*void*\

**ENGINE\_load\_openssl**(*void*);

*int*\

**ENGINE\_register\_all\_complete**(*void*);

*void*\

**ENGINE\_cleanup**(*void*);

## DESCRIPTION

*ENGINE* objects used to provide alternative implementations of cryptographic algorithms, for example using specialized hardware. LibreSSL no longer supports this feature.

All functions in this manual ignore all their arguments and do nothing except return failure if possible. They are provided only to avoid patching software that expects *ENGINE* support to be available.

## RETURN VALUES

**ENGINE\_new**(), **ENGINE\_by\_id**(), **ENGINE\_get\_default\_RSA**(), **ENGINE\_load\_private\_key**(), and **ENGINE\_load\_public\_key**() always return NULL.

**ENGINE\_free**(), **ENGINE\_init**(), **ENGINE\_finish**(), **ENGINE\_ctrl\_cmd**(), **ENGINE\_ctrl\_cmd\_string**(), **ENGINE\_set\_default**(), **ENGINE\_set\_default\_RSA**(), and **ENGINE\_register\_all\_complete**() always return 0.

**ENGINE\_get\_id**() and **ENGINE\_get\_name**() always return the constant empty string.

## SEE ALSO

[crypto(3)](/crypto/3.md)

## HISTORY

**ENGINE\_new**(), **ENGINE\_free**(), **ENGINE\_init**(), **ENGINE\_finish**(), **ENGINE\_by\_id**(), **ENGINE\_get\_id**(), **ENGINE\_get\_name**(), **ENGINE\_set\_default**(), **ENGINE\_get\_default\_RSA**(), **ENGINE\_set\_default\_RSA**(), **ENGINE\_load\_private\_key**(), and **ENGINE\_load\_public\_key**() first appeared in OpenSSL 0.9.7 and have been available since OpenBSD 2.9.

**ENGINE\_ctrl\_cmd**(), **ENGINE\_ctrl\_cmd\_string**(), **ENGINE\_load\_builtin\_engines**(), **ENGINE\_load\_openssl**(), **ENGINE\_register\_all\_complete**(), and **ENGINE\_cleanup**() first appeared in OpenSSL 0.9.7 and have been available since OpenBSD 3.4.

All these functions were turned into stubs in OpenBSD 7.4.
