Lines Matching +full:application +full:- +full:specific

1 .\" -*- mode: troff; coding: utf-8 -*-
58 .TH ENGINE_ADD 3ossl 2025-09-30 3.5.4 OpenSSL
102 \&\- ENGINE cryptographic module support
238 reference-counted mechanism to allow them to be dynamically loaded in and
239 out of the running application.
245 \& RSA_METHOD \- for providing alternative RSA implementations
247 \& \- similarly for other OpenSSL APIs
248 \& EVP_CIPHER \- potentially multiple cipher algorithms (indexed by \*(Aqnid\*(Aq)
249 \& EVP_DIGEST \- potentially multiple hash algorithms (indexed by \*(Aqnid\*(Aq)
250 \& key\-loading \- loading public and/or private EVP_PKEY keys
255 treated as handles \- i.e. not only as pointers, but also as references to
260 ENGINE objects have two levels of reference-counting to match the way in
262 inherently a \fBstructural\fR reference \- a structural reference is required
273 implicitly contains a structural reference as well \- however to avoid
274 difficult-to-find programming bugs, it is recommended to treat the two
283 iterating across OpenSSL's internal linked-list of loaded
292 released by a corresponding to call to the \fBENGINE_free()\fR function \- the
298 structural reference will internally obtain another reference \- typically
301 OpenSSL's internal list is \fBENGINE_add()\fR \- if this function returns success,
308 ENGINE list \- they will return a new structural reference to the next (or
337 section, though they are not usually required by application programmers as
339 algorithm-specific types in OpenSSL, such as RSA, DSA, EVP_CIPHER_CTX, etc.
357 will operate with a NULL ENGINE handle \- this usually equates to using the
372 instead the only way for the state table to return a non-NULL ENGINE to the
377 indexed by 'nid', these flags and cached-responses are distinct for each 'nid'
379 .SS "Application requirements"
380 .IX Subsection "Application requirements"
381 This section will explain the basic things an application programmer should
385 application and user. OpenSSL maintains an internal linked list of
386 "visible" ENGINEs from which it has to operate \- at start-up, this list is
387 empty and in fact if an application does not call any ENGINE API calls and
388 it uses static linking against openssl, then the resulting application
391 made visible to OpenSSL \- this is controlled by calling the various "load"
395 the program and loaded into memory at run-time) does not mean they are
396 "registered" or called into use by OpenSSL automatically \- that behaviour
397 is something for the application to control. Some applications
400 OpenSSL automatically use at run-time any ENGINE that is able to
401 successfully initialise \- i.e. to assume that this corresponds to
406 source code to openssl's built-in utilities as guides.
408 If no ENGINE API functions are called within an application, then OpenSSL
413 \&\fIUsing a specific ENGINE implementation\fR
415 Here we'll assume an application has been configured by its user or admin
417 OpenSSL the application was compiled with. If it is available, it should be
419 OpenSSL should use its built-in software as per usual. The following code
449 \&\fIAutomatically using built-in ENGINE implementations\fR
453 OpenSSL \- if there is an ENGINE that implements it and can be initialised,
472 OpenSSL. This mechanism is entirely based on the use of name-value pairs
476 possible for the application to dynamically interrogate the loaded ENGINE
488 implementation (which may know nothing at all specific to the host system)
491 smart-card identifiers, passwords to initialise protected devices,
498 this in the descriptions attached to built-in control commands and/or in
504 name of the ENGINE it wishes to use, a table of string-pairs for use before
506 the string-pairs used for control commands consist of a command "name"
507 followed by the command "parameter" \- the parameter could be NULL in some
520 \& while (pre_num\-\-) {
522 \& fprintf(stderr, "Failed command (%s \- %s:%s)\en", engine_id,
539 \& while (post_num\-\-) {
541 \& fprintf(stderr, "Failed command (%s \- %s:%s)\en", engine_id,
555 relax the semantics of the function \- if set nonzero it will only return
559 only supplying commands specific to the given ENGINE so we set this to
564 It is possible to discover at run-time the names, numerical-ids, descriptions
622 description. ENGINE_CTRL_GET_FLAGS returns a bitwise-OR'd mask of the following
633 informational to the caller \- this flag will prevent the command being usable
634 for any higher-level ENGINE functions such as \fBENGINE_ctrl_cmd_string()\fR.
635 "INTERNAL" commands are not intended to be exposed to text-based configuration
640 supports certain specific commands it might want to use (e.g. application "foo"
641 might query various ENGINEs to see if they implement "FOO_GET_VENDOR_LOGO_GIF" \-
642 and ENGINE could therefore decide whether or not to support this "foo"\-specific
649 Ignored in set-user-ID and set-group-ID programs.
733 Copyright 2002\-2024 The OpenSSL Project Authors. All Rights Reserved.