sync with OpenBSD -current
This commit is contained in:
parent
a7acbdeab0
commit
c22b8a6120
202 changed files with 3004 additions and 4921 deletions
|
@ -6506,7 +6506,10 @@
|
||||||
./usr/share/zoneinfo/W-SU
|
./usr/share/zoneinfo/W-SU
|
||||||
./usr/share/zoneinfo/WET
|
./usr/share/zoneinfo/WET
|
||||||
./usr/share/zoneinfo/Zulu
|
./usr/share/zoneinfo/Zulu
|
||||||
|
./usr/share/zoneinfo/leap-seconds.list
|
||||||
|
./usr/share/zoneinfo/leapseconds
|
||||||
./usr/share/zoneinfo/posixrules
|
./usr/share/zoneinfo/posixrules
|
||||||
|
./usr/share/zoneinfo/tzdata.zi
|
||||||
./usr/share/zoneinfo/zone.tab
|
./usr/share/zoneinfo/zone.tab
|
||||||
./usr/share/zoneinfo/zone1970.tab
|
./usr/share/zoneinfo/zone1970.tab
|
||||||
./var
|
./var
|
||||||
|
|
|
@ -1893,17 +1893,7 @@
|
||||||
./usr/share/man/man3/EC_KEY_new.3
|
./usr/share/man/man3/EC_KEY_new.3
|
||||||
./usr/share/man/man3/EC_POINT_add.3
|
./usr/share/man/man3/EC_POINT_add.3
|
||||||
./usr/share/man/man3/EC_POINT_new.3
|
./usr/share/man/man3/EC_POINT_new.3
|
||||||
./usr/share/man/man3/ENGINE_add.3
|
|
||||||
./usr/share/man/man3/ENGINE_ctrl.3
|
|
||||||
./usr/share/man/man3/ENGINE_get_default_RSA.3
|
|
||||||
./usr/share/man/man3/ENGINE_init.3
|
|
||||||
./usr/share/man/man3/ENGINE_new.3
|
./usr/share/man/man3/ENGINE_new.3
|
||||||
./usr/share/man/man3/ENGINE_register_RSA.3
|
|
||||||
./usr/share/man/man3/ENGINE_register_all_RSA.3
|
|
||||||
./usr/share/man/man3/ENGINE_set_RSA.3
|
|
||||||
./usr/share/man/man3/ENGINE_set_default.3
|
|
||||||
./usr/share/man/man3/ENGINE_set_flags.3
|
|
||||||
./usr/share/man/man3/ENGINE_unregister_RSA.3
|
|
||||||
./usr/share/man/man3/ERR.3
|
./usr/share/man/man3/ERR.3
|
||||||
./usr/share/man/man3/ERR_GET_LIB.3
|
./usr/share/man/man3/ERR_GET_LIB.3
|
||||||
./usr/share/man/man3/ERR_asprintf_error_data.3
|
./usr/share/man/man3/ERR_asprintf_error_data.3
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
# $OpenBSD: dot.login,v 1.14 2009/12/20 15:35:35 deraadt Exp $
|
# $OpenBSD: dot.login,v 1.15 2023/11/16 16:03:51 millert Exp $
|
||||||
#
|
#
|
||||||
# csh login file
|
# csh login file
|
||||||
|
|
||||||
if ( -x /usr/bin/tset ) then
|
if ( -x /usr/bin/tset ) then
|
||||||
set noglob histchars=""
|
set noglob histchars=""
|
||||||
onintr finish
|
onintr finish
|
||||||
if ( $?XTERM_VERSION ) then
|
|
||||||
eval `tset -IsQ '-munknown:?vt220' $TERM`
|
eval `tset -IsQ '-munknown:?vt220' $TERM`
|
||||||
else
|
|
||||||
eval `tset -sQ '-munknown:?vt220' $TERM`
|
|
||||||
endif
|
|
||||||
finish:
|
finish:
|
||||||
unset noglob histchars
|
unset noglob histchars
|
||||||
onintr
|
onintr
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $OpenBSD: dot.profile,v 1.9 2010/12/13 12:54:31 millert Exp $
|
# $OpenBSD: dot.profile,v 1.10 2023/11/16 16:03:51 millert Exp $
|
||||||
#
|
#
|
||||||
# sh/ksh initialization
|
# sh/ksh initialization
|
||||||
|
|
||||||
|
@ -11,11 +11,7 @@ umask 022
|
||||||
case "$-" in
|
case "$-" in
|
||||||
*i*) # interactive shell
|
*i*) # interactive shell
|
||||||
if [ -x /usr/bin/tset ]; then
|
if [ -x /usr/bin/tset ]; then
|
||||||
if [ X"$XTERM_VERSION" = X"" ]; then
|
|
||||||
eval `/usr/bin/tset -sQ '-munknown:?vt220' $TERM`
|
|
||||||
else
|
|
||||||
eval `/usr/bin/tset -IsQ '-munknown:?vt220' $TERM`
|
eval `/usr/bin/tset -IsQ '-munknown:?vt220' $TERM`
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
# $OpenBSD: dot.login,v 1.6 2015/12/15 16:37:58 deraadt Exp $
|
# $OpenBSD: dot.login,v 1.7 2023/11/16 16:05:13 millert Exp $
|
||||||
#
|
#
|
||||||
# csh login file
|
# csh login file
|
||||||
|
|
||||||
if ( ! $?TERMCAP ) then
|
if ( ! $?TERMCAP ) then
|
||||||
if ( $?XTERM_VERSION ) then
|
|
||||||
tset -IQ '-munknown:?vt220' $TERM
|
tset -IQ '-munknown:?vt220' $TERM
|
||||||
else
|
|
||||||
tset -Q '-munknown:?vt220' $TERM
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
stty newcrt crterase
|
stty newcrt crterase
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
# SecBSD 1.4-3174c54: Tue Nov 14 10 00:45:01 UTC 2023 (Mictlantecuhtli)
|
# SecBSD 1.4-731e06f: Mon Nov 20 02:17:28 UTC 2023 (Mictlantecuhtli)
|
||||||
|
|
|
@ -8113,7 +8113,7 @@ def err_typecheck_convert_pointer_int : Error<
|
||||||
"; remove &}3">;
|
"; remove &}3">;
|
||||||
def ext_typecheck_convert_pointer_int : ExtWarn<
|
def ext_typecheck_convert_pointer_int : ExtWarn<
|
||||||
err_typecheck_convert_pointer_int.Summary>,
|
err_typecheck_convert_pointer_int.Summary>,
|
||||||
InGroup<IntConversion>, DefaultError;
|
InGroup<IntConversion>;
|
||||||
def err_typecheck_convert_int_pointer : Error<
|
def err_typecheck_convert_int_pointer : Error<
|
||||||
"incompatible integer to pointer conversion "
|
"incompatible integer to pointer conversion "
|
||||||
"%select{%diff{assigning to $ from $|assigning to different types}0,1"
|
"%select{%diff{assigning to $ from $|assigning to different types}0,1"
|
||||||
|
@ -8133,7 +8133,7 @@ def err_typecheck_convert_int_pointer : Error<
|
||||||
"; remove &}3">;
|
"; remove &}3">;
|
||||||
def ext_typecheck_convert_int_pointer : ExtWarn<
|
def ext_typecheck_convert_int_pointer : ExtWarn<
|
||||||
err_typecheck_convert_int_pointer.Summary>,
|
err_typecheck_convert_int_pointer.Summary>,
|
||||||
InGroup<IntConversion>, DefaultError;
|
InGroup<IntConversion>;
|
||||||
def ext_typecheck_convert_pointer_void_func : Extension<
|
def ext_typecheck_convert_pointer_void_func : Extension<
|
||||||
"%select{%diff{assigning to $ from $|assigning to different types}0,1"
|
"%select{%diff{assigning to $ from $|assigning to different types}0,1"
|
||||||
"|%diff{passing $ to parameter of type $|"
|
"|%diff{passing $ to parameter of type $|"
|
||||||
|
|
|
@ -21198,6 +21198,8 @@ bool ARMTargetLowering::shouldInsertFencesForAtomic(
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ARMTargetLowering::useLoadStackGuardNode() const {
|
bool ARMTargetLowering::useLoadStackGuardNode() const {
|
||||||
|
if (Subtarget->getTargetTriple().isOSOpenBSD())
|
||||||
|
return false;
|
||||||
// ROPI/RWPI are not supported currently.
|
// ROPI/RWPI are not supported currently.
|
||||||
return !Subtarget->isROPI() && !Subtarget->isRWPI();
|
return !Subtarget->isROPI() && !Subtarget->isRWPI();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5293,7 +5293,8 @@ void PPCDAGToDAGISel::Select(SDNode *N) {
|
||||||
// generate secure plt code for TLS symbols.
|
// generate secure plt code for TLS symbols.
|
||||||
getGlobalBaseReg();
|
getGlobalBaseReg();
|
||||||
} break;
|
} break;
|
||||||
case PPCISD::CALL: {
|
case PPCISD::CALL:
|
||||||
|
case PPCISD::CALL_RM: {
|
||||||
if (PPCLowering->getPointerTy(CurDAG->getDataLayout()) != MVT::i32 ||
|
if (PPCLowering->getPointerTy(CurDAG->getDataLayout()) != MVT::i32 ||
|
||||||
!TM.isPositionIndependent() || !Subtarget->isSecurePlt() ||
|
!TM.isPositionIndependent() || !Subtarget->isSecurePlt() ||
|
||||||
!Subtarget->isTargetELF())
|
!Subtarget->isTargetELF())
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $OpenBSD: Makefile.inc,v 1.27 2023/11/11 18:35:35 robert Exp $
|
# $OpenBSD: Makefile.inc,v 1.28 2023/11/17 15:46:58 visa Exp $
|
||||||
|
|
||||||
CLANG_SRCS?= ${.CURDIR}/../../../llvm/clang
|
CLANG_SRCS?= ${.CURDIR}/../../../llvm/clang
|
||||||
LLDB_SRCS?= ${.CURDIR}/../../../llvm/lldb
|
LLDB_SRCS?= ${.CURDIR}/../../../llvm/lldb
|
||||||
|
@ -41,6 +41,7 @@ CXXFLAGS+= -mno-retpoline
|
||||||
# Omit frame pointer to improve performance.
|
# Omit frame pointer to improve performance.
|
||||||
.if ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el"
|
.if ${MACHINE_ARCH} == "mips64" || ${MACHINE_ARCH} == "mips64el"
|
||||||
CXXFLAGS+= -fomit-frame-pointer
|
CXXFLAGS+= -fomit-frame-pointer
|
||||||
|
CXXFLAGS+= -mxgot
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
CPPFLAGS+= -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS \
|
CPPFLAGS+= -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $OpenBSD: Makefile,v 1.4 2021/12/17 14:55:44 patrick Exp $
|
# $OpenBSD: Makefile,v 1.5 2023/11/16 15:05:44 robert Exp $
|
||||||
|
|
||||||
.include <bsd.own.mk>
|
.include <bsd.own.mk>
|
||||||
|
|
||||||
|
@ -33,6 +33,10 @@ HDRS+= R600GenAsmWriter.inc \
|
||||||
|
|
||||||
HDRS+= InstCombineTables.inc
|
HDRS+= InstCombineTables.inc
|
||||||
|
|
||||||
|
.if ${MACHINE_CPU} == "i386"
|
||||||
|
.NOTPARALLEL: ${HDRS}
|
||||||
|
.endif
|
||||||
|
|
||||||
all: ${HDRS}
|
all: ${HDRS}
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $OpenBSD: Makefile,v 1.3 2023/11/11 18:35:37 robert Exp $
|
# $OpenBSD: Makefile,v 1.4 2023/11/14 16:42:14 jca Exp $
|
||||||
|
|
||||||
LIB= LLVMRISCVCodeGen
|
LIB= LLVMRISCVCodeGen
|
||||||
NOPROFILE=
|
NOPROFILE=
|
||||||
|
@ -37,3 +37,4 @@ SRCS+= RISCVAsmPrinter.cpp \
|
||||||
RISCVTargetTransformInfo.cpp
|
RISCVTargetTransformInfo.cpp
|
||||||
|
|
||||||
.PATH: ${.CURDIR}/../../../llvm/llvm/lib/Target/RISCV
|
.PATH: ${.CURDIR}/../../../llvm/llvm/lib/Target/RISCV
|
||||||
|
.PATH: ${.CURDIR}/../../../llvm/llvm/lib/Target/RISCV/GISel
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.11 2023/03/31 18:46:24 kettenis Exp $ */
|
/* $OpenBSD: md_init.h,v 1.12 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 Ross Harvey
|
* Copyright (c) 2001 Ross Harvey
|
||||||
|
@ -112,10 +112,6 @@
|
||||||
" \n" \
|
" \n" \
|
||||||
" b ___start \n" \
|
" b ___start \n" \
|
||||||
" \n" \
|
" \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" mov x8, #" STR(SYS_exit) " \n" \
|
|
||||||
" svc #0 \n" \
|
|
||||||
" dsb nsh \n" \
|
|
||||||
" isb \n" \
|
|
||||||
" udf #0 \n" \
|
" udf #0 \n" \
|
||||||
".previous");
|
".previous");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.12 2020/10/15 16:30:23 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.13 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 Ross Harvey
|
* Copyright (c) 2001 Ross Harvey
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
@ -95,11 +95,9 @@
|
||||||
" mov $9, $16 \n" \
|
" mov $9, $16 \n" \
|
||||||
" mov 0, $17 \n" \
|
" mov 0, $17 \n" \
|
||||||
" jsr $26, ___start \n" \
|
" jsr $26, ___start \n" \
|
||||||
".globl _dl_exit \n" \
|
".globl _csu_abort \n" \
|
||||||
".type _dl_exit@function \n" \
|
".type _csu_abort@function \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" lda $0, " STR(SYS_exit) " \n" \
|
|
||||||
" callsys \n" \
|
|
||||||
" halt ")
|
" halt ")
|
||||||
|
|
||||||
#define MD_START_ARGS char **sp, void (*cleanup)(void)
|
#define MD_START_ARGS char **sp, void (*cleanup)(void)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.10 2023/04/25 04:10:21 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.11 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 Ross Harvey
|
* Copyright (c) 2001 Ross Harvey
|
||||||
|
@ -107,12 +107,10 @@
|
||||||
" addq $8,%rsp \n" \
|
" addq $8,%rsp \n" \
|
||||||
" jmp ___start \n" \
|
" jmp ___start \n" \
|
||||||
" \n" \
|
" \n" \
|
||||||
" .global _dl_exit \n" \
|
" .global _csu_abort \n" \
|
||||||
" .type _dl_exit,@function \n" \
|
" .type _csu_abort,@function \n" \
|
||||||
" .align 8 \n" \
|
" .align 8 \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" endbr64 \n" \
|
" endbr64 \n" \
|
||||||
" movl $ " STR(SYS_exit) ", %eax \n" \
|
|
||||||
" syscall \n" \
|
|
||||||
" int3 \n" \
|
" int3 \n" \
|
||||||
" .previous")
|
" .previous")
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.17 2020/10/19 17:57:40 naddy Exp $ */
|
/* $OpenBSD: md_init.h,v 1.18 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 Ross Harvey
|
* Copyright (c) 2001 Ross Harvey
|
||||||
|
@ -154,10 +154,6 @@
|
||||||
".L__DYNAMIC: \n" \
|
".L__DYNAMIC: \n" \
|
||||||
" .long _DYNAMIC(GOTOFF) \n" \
|
" .long _DYNAMIC(GOTOFF) \n" \
|
||||||
" \n" \
|
" \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" mov r12, #" STR(SYS_exit) " \n" \
|
|
||||||
" swi #0 \n" \
|
|
||||||
" dsb nsh \n" \
|
|
||||||
" isb \n" \
|
|
||||||
" udf #0 \n" \
|
" udf #0 \n" \
|
||||||
".previous");
|
".previous");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: boot.h,v 1.34 2022/10/21 18:14:09 deraadt Exp $ */
|
/* $OpenBSD: boot.h,v 1.35 2023/11/18 16:26:15 deraadt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
|
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
#include <machine/reloc.h>
|
#include <machine/reloc.h>
|
||||||
|
|
||||||
__dead
|
__dead
|
||||||
void _dl_exit(int);
|
void _csu_abort(void);
|
||||||
|
|
||||||
#include "archdep.h"
|
#include "archdep.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: boot_md.h,v 1.4 2022/10/27 19:40:21 deraadt Exp $ */
|
/* $OpenBSD: boot_md.h,v 1.5 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
|
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
#include <machine/reloc.h>
|
#include <machine/reloc.h>
|
||||||
|
|
||||||
__dead
|
__dead
|
||||||
void _dl_exit(int);
|
void _csu_abort(void);
|
||||||
|
|
||||||
#include "archdep.h"
|
#include "archdep.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.15 2020/10/15 16:30:23 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.16 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2003 Dale Rahn. All rights reserved.
|
* Copyright (c) 2003 Dale Rahn. All rights reserved.
|
||||||
|
@ -137,17 +137,13 @@
|
||||||
" copy %dp, %r19 \n" \
|
" copy %dp, %r19 \n" \
|
||||||
" .exit \n" \
|
" .exit \n" \
|
||||||
" .procend \n" \
|
" .procend \n" \
|
||||||
" .export _dl_exit, entry \n" \
|
" .export _csu_abort, entry \n" \
|
||||||
" .type _dl_exit,@function \n" \
|
" .type _csu_abort,@function \n" \
|
||||||
" .label _dl_exit \n" \
|
" .label _csu_abort \n" \
|
||||||
" .proc \n" \
|
" .proc \n" \
|
||||||
" .callinfo frame=0, calls \n" \
|
" .callinfo frame=0, calls \n" \
|
||||||
" .entry \n" \
|
" .entry \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" stw %rp, -24(%sp) \n" \
|
|
||||||
" ldil L%0xc0000000, %r1 \n" \
|
|
||||||
" ble 4(%sr7, %r1) \n" \
|
|
||||||
" ldi " STR(SYS_exit) ", %t1 \n" \
|
|
||||||
" break 0,0 \n" \
|
" break 0,0 \n" \
|
||||||
" .exit \n" \
|
" .exit \n" \
|
||||||
" .procend")
|
" .procend")
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.12 2023/04/25 04:06:06 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.13 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 Ross Harvey
|
* Copyright (c) 2001 Ross Harvey
|
||||||
|
@ -114,10 +114,8 @@
|
||||||
" call ___start # ___start(argc,argv,envp,0) \n" \
|
" call ___start # ___start(argc,argv,envp,0) \n" \
|
||||||
" \n" \
|
" \n" \
|
||||||
" .align 4 \n" \
|
" .align 4 \n" \
|
||||||
" .globl _dl_exit \n" \
|
" .globl _csu_abort \n" \
|
||||||
" .type _dl_exit,@function \n" \
|
" .type _csu_abort,@function \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" mov $" STR(SYS_exit) ", %eax\n" \
|
|
||||||
" int $0x80 \n" \
|
|
||||||
" int3 \n" \
|
" int3 \n" \
|
||||||
" .previous")
|
" .previous")
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.9 2020/10/15 16:30:23 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.10 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2012 Miodrag Vallat.
|
* Copyright (c) 2012 Miodrag Vallat.
|
||||||
|
@ -99,9 +99,6 @@
|
||||||
" addu %r4, %r4, 4 \n" \
|
" addu %r4, %r4, 4 \n" \
|
||||||
" /* envp = argv + argc + 1 */ \n" \
|
" /* envp = argv + argc + 1 */ \n" \
|
||||||
\
|
\
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" or %r13, %r0, " STR(SYS_exit) " \n" \
|
|
||||||
" tb0 0, %r0, 450 \n" \
|
|
||||||
" or %r0, %r0, %r0 \n" \
|
|
||||||
" tb0 0, %r0, 130 /* breakpoint */ \n" \
|
" tb0 0, %r0, 130 /* breakpoint */ \n" \
|
||||||
" .previous");
|
" .previous");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: boot_md.h,v 1.3 2022/10/27 19:40:23 deraadt Exp $ */
|
/* $OpenBSD: boot_md.h,v 1.5 2023/11/18 18:02:47 deraadt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
|
* Copyright (c) 1998 Per Fogelstrom, Opsycon AB
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
#include <machine/reloc.h>
|
#include <machine/reloc.h>
|
||||||
|
|
||||||
__dead
|
__dead
|
||||||
void _dl_exit(int);
|
void _csu_abort(void);
|
||||||
|
|
||||||
#include "archdep.h"
|
#include "archdep.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.20 2020/10/20 15:26:59 visa Exp $ */
|
/* $OpenBSD: md_init.h,v 1.22 2023/11/19 00:46:54 deraadt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 Ross Harvey
|
* Copyright (c) 2001 Ross Harvey
|
||||||
|
@ -140,14 +140,12 @@
|
||||||
" dla $t9, ___start \n" \
|
" dla $t9, ___start \n" \
|
||||||
" jr $t9 \n" \
|
" jr $t9 \n" \
|
||||||
" .end __start \n" \
|
" .end __start \n" \
|
||||||
" .globl _dl_exit \n" \
|
" .globl _csu_abort \n" \
|
||||||
" .ent _dl_exit \n" \
|
" .ent _csu_abort \n" \
|
||||||
" .type _dl_exit, @function \n" \
|
" .type _csu_abort, @function \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" li $v0, " STR(SYS_exit) " \n" \
|
|
||||||
" syscall \n" \
|
|
||||||
" teq $zero, $zero, 0x52 \n" \
|
" teq $zero, $zero, 0x52 \n" \
|
||||||
" .end _dl_exit \n" \
|
" .end _csu_abort \n" \
|
||||||
" .previous")
|
" .previous")
|
||||||
|
|
||||||
struct kframe {
|
struct kframe {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.11 2020/10/15 16:30:23 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.12 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 Ross Harvey
|
* Copyright (c) 2001 Ross Harvey
|
||||||
|
@ -119,10 +119,8 @@ __asm( \
|
||||||
" \n" \
|
" \n" \
|
||||||
" .text \n" \
|
" .text \n" \
|
||||||
" .align 2 \n" \
|
" .align 2 \n" \
|
||||||
" .globl _dl_exit \n" \
|
" .globl _csu_abort \n" \
|
||||||
" .type _dl_exit, @function \n" \
|
" .type _csu_abort, @function \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" li %r0, " STR(SYS_exit) " \n" \
|
|
||||||
" sc \n" \
|
|
||||||
" .long 0 # illegal \n" \
|
" .long 0 # illegal \n" \
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.4 2020/10/15 16:30:23 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.5 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2020 Dale Rahn <drahn@openbsd.org>
|
* Copyright (c) 2020 Dale Rahn <drahn@openbsd.org>
|
||||||
|
@ -111,10 +111,8 @@ __asm( \
|
||||||
" li %r6, 0 \n" \
|
" li %r6, 0 \n" \
|
||||||
" bl ___start \n" \
|
" bl ___start \n" \
|
||||||
" \n" \
|
" \n" \
|
||||||
" .globl _dl_exit \n" \
|
" .globl _csu_abort \n" \
|
||||||
" .type _dl_exit, @function \n" \
|
" .type _csu_abort, @function \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" li %r0, " STR(SYS_exit) " \n" \
|
|
||||||
" sc \n" \
|
|
||||||
" .long 0 # illegal \n" \
|
" .long 0 # illegal \n" \
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.3 2021/07/22 18:16:13 kettenis Exp $ */
|
/* $OpenBSD: md_init.h,v 1.4 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2020 Dale Rahn <drahn@openbsd.org>
|
* Copyright (c) 2020 Dale Rahn <drahn@openbsd.org>
|
||||||
*
|
*
|
||||||
|
@ -107,8 +107,6 @@
|
||||||
" j ___start \n" \
|
" j ___start \n" \
|
||||||
" .size _start, .-_start \n" \
|
" .size _start, .-_start \n" \
|
||||||
" .size __start, .-__start \n" \
|
" .size __start, .-__start \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" li t0, " STR(SYS_exit) " \n" \
|
|
||||||
" ecall \n" \
|
|
||||||
" unimp \n" \
|
" unimp \n" \
|
||||||
".previous");
|
".previous");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.10 2020/10/15 16:30:23 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.11 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
/* $NetBSD: dot_init.h,v 1.3 2005/12/24 22:02:10 perry Exp $ */
|
/* $NetBSD: dot_init.h,v 1.3 2005/12/24 22:02:10 perry Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
|
@ -131,10 +131,8 @@ __asm(".section " #section "\n" \
|
||||||
" .long _DYNAMIC - .L_offbase \n" \
|
" .long _DYNAMIC - .L_offbase \n" \
|
||||||
\
|
\
|
||||||
" .align 2 \n" \
|
" .align 2 \n" \
|
||||||
" .globl _dl_exit \n" \
|
" .globl _csu_abort \n" \
|
||||||
" .type _dl_exit,@function \n" \
|
" .type _csu_abort,@function \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" mov #" STR(SYS_exit) ", r0 \n" \
|
|
||||||
" .word 0xc380 /* trapa #0x80 */ \n" \
|
|
||||||
" sleep /* illegal */ \n" \
|
" sleep /* illegal */ \n" \
|
||||||
".previous")
|
".previous")
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: md_init.h,v 1.9 2020/10/15 16:30:23 deraadt Exp $ */
|
/* $OpenBSD: md_init.h,v 1.10 2023/11/18 16:26:16 deraadt Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2001 Ross Harvey
|
* Copyright (c) 2001 Ross Harvey
|
||||||
|
@ -100,10 +100,8 @@
|
||||||
" ba,pt %icc, ___start \n" \
|
" ba,pt %icc, ___start \n" \
|
||||||
" clr %o1 \n" \
|
" clr %o1 \n" \
|
||||||
" \n" \
|
" \n" \
|
||||||
" .global _dl_exit \n" \
|
" .global _csu_abort \n" \
|
||||||
"_dl_exit: \n" \
|
"_csu_abort: \n" \
|
||||||
" mov " STR(SYS_exit) ", %g1 \n" \
|
|
||||||
" t 0 \n" \
|
|
||||||
" unimp \n" \
|
" unimp \n" \
|
||||||
" .previous")
|
" .previous")
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: a_pkey.c,v 1.6 2023/07/07 19:37:52 beck Exp $ */
|
/* $OpenBSD: a_pkey.c,v 1.7 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -67,10 +67,6 @@
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "asn1_local.h"
|
#include "asn1_local.h"
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
|
|
||||||
|
@ -87,10 +83,6 @@ d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, long length)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ret = *a;
|
ret = *a;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(ret->engine);
|
|
||||||
ret->engine = NULL;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!EVP_PKEY_set_type(ret, type)) {
|
if (!EVP_PKEY_set_type(ret, type)) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ameth_lib.c,v 1.32 2023/07/07 19:37:52 beck Exp $ */
|
/* $OpenBSD: ameth_lib.c,v 1.33 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
||||||
* project 2006.
|
* project 2006.
|
||||||
*/
|
*/
|
||||||
|
@ -64,10 +64,6 @@
|
||||||
#include <openssl/asn1t.h>
|
#include <openssl/asn1t.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "asn1_local.h"
|
#include "asn1_local.h"
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
|
|
||||||
|
@ -170,15 +166,6 @@ EVP_PKEY_asn1_find(ENGINE **pe, int type)
|
||||||
type = mp->pkey_base_id;
|
type = mp->pkey_base_id;
|
||||||
}
|
}
|
||||||
if (pe) {
|
if (pe) {
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE *e;
|
|
||||||
/* type will contain the final unaliased type */
|
|
||||||
e = ENGINE_get_pkey_asn1_meth_engine(type);
|
|
||||||
if (e) {
|
|
||||||
*pe = e;
|
|
||||||
return ENGINE_get_pkey_asn1_meth(e, type);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
*pe = NULL;
|
*pe = NULL;
|
||||||
}
|
}
|
||||||
return mp;
|
return mp;
|
||||||
|
@ -193,20 +180,6 @@ EVP_PKEY_asn1_find_str(ENGINE **pe, const char *str, int len)
|
||||||
if (len == -1)
|
if (len == -1)
|
||||||
len = strlen(str);
|
len = strlen(str);
|
||||||
if (pe) {
|
if (pe) {
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE *e;
|
|
||||||
ameth = ENGINE_pkey_asn1_find_str(&e, str, len);
|
|
||||||
if (ameth) {
|
|
||||||
/* Convert structural into
|
|
||||||
* functional reference
|
|
||||||
*/
|
|
||||||
if (!ENGINE_init(e))
|
|
||||||
ameth = NULL;
|
|
||||||
ENGINE_free(e);
|
|
||||||
*pe = e;
|
|
||||||
return ameth;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
*pe = NULL;
|
*pe = NULL;
|
||||||
}
|
}
|
||||||
for (i = EVP_PKEY_asn1_get_count() - 1; i >= 0; i--) {
|
for (i = EVP_PKEY_asn1_get_count() - 1; i >= 0; i--) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: conf_mall.c,v 1.9 2014/07/11 08:44:48 jsing Exp $ */
|
/* $OpenBSD: conf_mall.c,v 1.10 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
|
||||||
* project 2001.
|
* project 2001.
|
||||||
*/
|
*/
|
||||||
|
@ -65,10 +65,6 @@
|
||||||
#include <openssl/crypto.h>
|
#include <openssl/crypto.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Load all OpenSSL builtin modules */
|
/* Load all OpenSSL builtin modules */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -76,7 +72,4 @@ OPENSSL_load_builtin_modules(void)
|
||||||
{
|
{
|
||||||
/* Add builtin modules here */
|
/* Add builtin modules here */
|
||||||
ASN1_add_oid_module();
|
ASN1_add_oid_module();
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_add_conf_module();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: conf_sap.c,v 1.14 2018/03/19 03:56:08 beck Exp $ */
|
/* $OpenBSD: conf_sap.c,v 1.15 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
|
||||||
* project 2001.
|
* project 2001.
|
||||||
*/
|
*/
|
||||||
|
@ -67,10 +67,6 @@
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This is the automatic configuration loader: it is called automatically by
|
/* This is the automatic configuration loader: it is called automatically by
|
||||||
* OpenSSL when any of a number of standard initialisation functions are called,
|
* OpenSSL when any of a number of standard initialisation functions are called,
|
||||||
* unless this is overridden by calling OPENSSL_no_config()
|
* unless this is overridden by calling OPENSSL_no_config()
|
||||||
|
@ -84,10 +80,6 @@ static void
|
||||||
OPENSSL_config_internal(void)
|
OPENSSL_config_internal(void)
|
||||||
{
|
{
|
||||||
OPENSSL_load_builtin_modules();
|
OPENSSL_load_builtin_modules();
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
/* Need to load ENGINEs */
|
|
||||||
ENGINE_load_builtin_engines();
|
|
||||||
#endif
|
|
||||||
/* Add others here? */
|
/* Add others here? */
|
||||||
|
|
||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: crypto_init.c,v 1.11 2023/07/08 08:28:23 beck Exp $ */
|
/* $OpenBSD: crypto_init.c,v 1.12 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 Bob Beck <beck@openbsd.org>
|
* Copyright (c) 2018 Bob Beck <beck@openbsd.org>
|
||||||
*
|
*
|
||||||
|
@ -22,9 +22,6 @@
|
||||||
|
|
||||||
#include <openssl/asn1.h>
|
#include <openssl/asn1.h>
|
||||||
#include <openssl/conf.h>
|
#include <openssl/conf.h>
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
|
@ -84,9 +81,6 @@ OPENSSL_cleanup(void)
|
||||||
ERR_free_strings();
|
ERR_free_strings();
|
||||||
|
|
||||||
CRYPTO_cleanup_all_ex_data();
|
CRYPTO_cleanup_all_ex_data();
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_cleanup();
|
|
||||||
#endif
|
|
||||||
EVP_cleanup();
|
EVP_cleanup();
|
||||||
|
|
||||||
ASN1_STRING_TABLE_cleanup();
|
ASN1_STRING_TABLE_cleanup();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: dh_lib.c,v 1.41 2023/08/13 12:09:14 tb Exp $ */
|
/* $OpenBSD: dh_lib.c,v 1.42 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -65,10 +65,6 @@
|
||||||
#include <openssl/dh.h>
|
#include <openssl/dh.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "dh_local.h"
|
#include "dh_local.h"
|
||||||
|
|
||||||
static const DH_METHOD *default_DH_method = NULL;
|
static const DH_METHOD *default_DH_method = NULL;
|
||||||
|
@ -101,10 +97,6 @@ DH_set_method(DH *dh, const DH_METHOD *meth)
|
||||||
mtmp = dh->meth;
|
mtmp = dh->meth;
|
||||||
if (mtmp->finish)
|
if (mtmp->finish)
|
||||||
mtmp->finish(dh);
|
mtmp->finish(dh);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(dh->engine);
|
|
||||||
dh->engine = NULL;
|
|
||||||
#endif
|
|
||||||
dh->meth = meth;
|
dh->meth = meth;
|
||||||
if (meth->init)
|
if (meth->init)
|
||||||
meth->init(dh);
|
meth->init(dh);
|
||||||
|
@ -133,24 +125,6 @@ DH_new_method(ENGINE *engine)
|
||||||
dh->flags = dh->meth->flags & ~DH_FLAG_NON_FIPS_ALLOW;
|
dh->flags = dh->meth->flags & ~DH_FLAG_NON_FIPS_ALLOW;
|
||||||
dh->references = 1;
|
dh->references = 1;
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (engine != NULL) {
|
|
||||||
if (!ENGINE_init(engine)) {
|
|
||||||
DHerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
dh->engine = engine;
|
|
||||||
} else
|
|
||||||
dh->engine = ENGINE_get_default_DH();
|
|
||||||
if (dh->engine != NULL) {
|
|
||||||
if ((dh->meth = ENGINE_get_DH(dh->engine)) == NULL) {
|
|
||||||
DHerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
dh->flags = dh->meth->flags & ~DH_FLAG_NON_FIPS_ALLOW;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_DH, dh, &dh->ex_data))
|
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_DH, dh, &dh->ex_data))
|
||||||
goto err;
|
goto err;
|
||||||
if (dh->meth->init != NULL && !dh->meth->init(dh))
|
if (dh->meth->init != NULL && !dh->meth->init(dh))
|
||||||
|
@ -178,9 +152,6 @@ DH_free(DH *r)
|
||||||
|
|
||||||
if (r->meth != NULL && r->meth->finish != NULL)
|
if (r->meth != NULL && r->meth->finish != NULL)
|
||||||
r->meth->finish(r);
|
r->meth->finish(r);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(r->engine);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, r, &r->ex_data);
|
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, r, &r->ex_data);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: dsa_lib.c,v 1.44 2023/08/12 06:14:36 tb Exp $ */
|
/* $OpenBSD: dsa_lib.c,v 1.45 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -70,9 +70,6 @@
|
||||||
#ifndef OPENSSL_NO_DH
|
#ifndef OPENSSL_NO_DH
|
||||||
#include <openssl/dh.h>
|
#include <openssl/dh.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "dh_local.h"
|
#include "dh_local.h"
|
||||||
#include "dsa_local.h"
|
#include "dsa_local.h"
|
||||||
|
@ -113,10 +110,6 @@ DSA_set_method(DSA *dsa, const DSA_METHOD *meth)
|
||||||
mtmp = dsa->meth;
|
mtmp = dsa->meth;
|
||||||
if (mtmp->finish)
|
if (mtmp->finish)
|
||||||
mtmp->finish(dsa);
|
mtmp->finish(dsa);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(dsa->engine);
|
|
||||||
dsa->engine = NULL;
|
|
||||||
#endif
|
|
||||||
dsa->meth = meth;
|
dsa->meth = meth;
|
||||||
if (meth->init)
|
if (meth->init)
|
||||||
meth->init(dsa);
|
meth->init(dsa);
|
||||||
|
@ -138,24 +131,6 @@ DSA_new_method(ENGINE *engine)
|
||||||
dsa->flags = dsa->meth->flags & ~DSA_FLAG_NON_FIPS_ALLOW;
|
dsa->flags = dsa->meth->flags & ~DSA_FLAG_NON_FIPS_ALLOW;
|
||||||
dsa->references = 1;
|
dsa->references = 1;
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (engine) {
|
|
||||||
if (!ENGINE_init(engine)) {
|
|
||||||
DSAerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
dsa->engine = engine;
|
|
||||||
} else
|
|
||||||
dsa->engine = ENGINE_get_default_DSA();
|
|
||||||
if (dsa->engine != NULL) {
|
|
||||||
if ((dsa->meth = ENGINE_get_DSA(dsa->engine)) == NULL) {
|
|
||||||
DSAerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
dsa->flags = dsa->meth->flags & ~DSA_FLAG_NON_FIPS_ALLOW;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_DSA, dsa, &dsa->ex_data))
|
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_DSA, dsa, &dsa->ex_data))
|
||||||
goto err;
|
goto err;
|
||||||
if (dsa->meth->init != NULL && !dsa->meth->init(dsa))
|
if (dsa->meth->init != NULL && !dsa->meth->init(dsa))
|
||||||
|
@ -184,9 +159,6 @@ DSA_free(DSA *r)
|
||||||
|
|
||||||
if (r->meth != NULL && r->meth->finish != NULL)
|
if (r->meth != NULL && r->meth->finish != NULL)
|
||||||
r->meth->finish(r);
|
r->meth->finish(r);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(r->engine);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DSA, r, &r->ex_data);
|
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DSA, r, &r->ex_data);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ec_key.c,v 1.37 2023/08/03 18:53:56 tb Exp $ */
|
/* $OpenBSD: ec_key.c,v 1.38 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/*
|
/*
|
||||||
* Written by Nils Larsch for the OpenSSL project.
|
* Written by Nils Larsch for the OpenSSL project.
|
||||||
*/
|
*/
|
||||||
|
@ -65,9 +65,6 @@
|
||||||
|
|
||||||
#include <openssl/opensslconf.h>
|
#include <openssl/opensslconf.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
|
|
||||||
#include "bn_local.h"
|
#include "bn_local.h"
|
||||||
|
@ -115,9 +112,6 @@ EC_KEY_free(EC_KEY *r)
|
||||||
if (r->meth != NULL && r->meth->finish != NULL)
|
if (r->meth != NULL && r->meth->finish != NULL)
|
||||||
r->meth->finish(r);
|
r->meth->finish(r);
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(r->engine);
|
|
||||||
#endif
|
|
||||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, r, &r->ex_data);
|
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, r, &r->ex_data);
|
||||||
|
|
||||||
EC_GROUP_free(r->group);
|
EC_GROUP_free(r->group);
|
||||||
|
@ -138,11 +132,6 @@ EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
|
||||||
if (src->meth != dest->meth) {
|
if (src->meth != dest->meth) {
|
||||||
if (dest->meth != NULL && dest->meth->finish != NULL)
|
if (dest->meth != NULL && dest->meth->finish != NULL)
|
||||||
dest->meth->finish(dest);
|
dest->meth->finish(dest);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (ENGINE_finish(dest->engine) == 0)
|
|
||||||
return 0;
|
|
||||||
dest->engine = NULL;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
/* copy the parameters */
|
/* copy the parameters */
|
||||||
if (src->group) {
|
if (src->group) {
|
||||||
|
@ -186,11 +175,6 @@ EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (src->meth != dest->meth) {
|
if (src->meth != dest->meth) {
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (src->engine != NULL && ENGINE_init(src->engine) == 0)
|
|
||||||
return 0;
|
|
||||||
dest->engine = src->engine;
|
|
||||||
#endif
|
|
||||||
dest->meth = src->meth;
|
dest->meth = src->meth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ec_kmeth.c,v 1.12 2023/07/28 09:28:37 tb Exp $ */
|
/* $OpenBSD: ec_kmeth.c,v 1.13 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/*
|
/*
|
||||||
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
||||||
* project.
|
* project.
|
||||||
|
@ -53,9 +53,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <openssl/ec.h>
|
#include <openssl/ec.h>
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
|
|
||||||
#include "bn_local.h"
|
#include "bn_local.h"
|
||||||
|
@ -126,11 +123,6 @@ EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth)
|
||||||
if (finish != NULL)
|
if (finish != NULL)
|
||||||
finish(key);
|
finish(key);
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(key->engine);
|
|
||||||
key->engine = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
key->meth = meth;
|
key->meth = meth;
|
||||||
if (meth->init != NULL)
|
if (meth->init != NULL)
|
||||||
return meth->init(key);
|
return meth->init(key);
|
||||||
|
@ -148,23 +140,6 @@ EC_KEY_new_method(ENGINE *engine)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
ret->meth = EC_KEY_get_default_method();
|
ret->meth = EC_KEY_get_default_method();
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (engine != NULL) {
|
|
||||||
if (!ENGINE_init(engine)) {
|
|
||||||
ECerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
ret->engine = engine;
|
|
||||||
} else
|
|
||||||
ret->engine = ENGINE_get_default_EC();
|
|
||||||
if (ret->engine) {
|
|
||||||
ret->meth = ENGINE_get_EC(ret->engine);
|
|
||||||
if (ret->meth == NULL) {
|
|
||||||
ECerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
ret->version = 1;
|
ret->version = 1;
|
||||||
ret->flags = 0;
|
ret->flags = 0;
|
||||||
ret->group = NULL;
|
ret->group = NULL;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: engine.h,v 1.42 2023/08/04 05:44:51 tb Exp $ */
|
/* $OpenBSD: engine.h,v 1.43 2023/11/19 15:41:46 tb Exp $ */
|
||||||
/* Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL
|
/* Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL
|
||||||
* project 2000.
|
* project 2000.
|
||||||
*/
|
*/
|
||||||
|
@ -89,8 +89,6 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* These flags are used to control combinations of algorithm (methods)
|
|
||||||
* by bitwise "OR"ing. */
|
|
||||||
#define ENGINE_METHOD_RSA (unsigned int)0x0001
|
#define ENGINE_METHOD_RSA (unsigned int)0x0001
|
||||||
#define ENGINE_METHOD_DSA (unsigned int)0x0002
|
#define ENGINE_METHOD_DSA (unsigned int)0x0002
|
||||||
#define ENGINE_METHOD_DH (unsigned int)0x0004
|
#define ENGINE_METHOD_DH (unsigned int)0x0004
|
||||||
|
@ -101,145 +99,43 @@ extern "C" {
|
||||||
#define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200
|
#define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200
|
||||||
#define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400
|
#define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400
|
||||||
#define ENGINE_METHOD_EC (unsigned int)0x0800
|
#define ENGINE_METHOD_EC (unsigned int)0x0800
|
||||||
/* Obvious all-or-nothing cases. */
|
|
||||||
#define ENGINE_METHOD_ALL (unsigned int)0xFFFF
|
#define ENGINE_METHOD_ALL (unsigned int)0xFFFF
|
||||||
#define ENGINE_METHOD_NONE (unsigned int)0x0000
|
#define ENGINE_METHOD_NONE (unsigned int)0x0000
|
||||||
|
|
||||||
/* This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used
|
|
||||||
* internally to control registration of ENGINE implementations, and can be set
|
|
||||||
* by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to
|
|
||||||
* initialise registered ENGINEs if they are not already initialised. */
|
|
||||||
#define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001
|
#define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001
|
||||||
|
|
||||||
/* ENGINE flags that can be set by ENGINE_set_flags(). */
|
|
||||||
/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ /* Not used */
|
|
||||||
|
|
||||||
/* This flag is for ENGINEs that wish to handle the various 'CMD'-related
|
|
||||||
* control commands on their own. Without this flag, ENGINE_ctrl() handles these
|
|
||||||
* control commands on behalf of the ENGINE using their "cmd_defns" data. */
|
|
||||||
#define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002
|
#define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002
|
||||||
|
|
||||||
/* This flag is for ENGINEs who return new duplicate structures when found via
|
|
||||||
* "ENGINE_by_id()". When an ENGINE must store state (eg. if ENGINE_ctrl()
|
|
||||||
* commands are called in sequence as part of some stateful process like
|
|
||||||
* key-generation setup and execution), it can set this flag - then each attempt
|
|
||||||
* to obtain the ENGINE will result in it being copied into a new structure.
|
|
||||||
* Normally, ENGINEs don't declare this flag so ENGINE_by_id() just increments
|
|
||||||
* the existing ENGINE's structural reference count. */
|
|
||||||
#define ENGINE_FLAGS_BY_ID_COPY (int)0x0004
|
#define ENGINE_FLAGS_BY_ID_COPY (int)0x0004
|
||||||
|
|
||||||
/* This flag if for an ENGINE that does not want its methods registered as
|
|
||||||
* part of ENGINE_register_all_complete() for example if the methods are
|
|
||||||
* not usable as default methods.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008
|
#define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008
|
||||||
|
|
||||||
/* ENGINEs can support their own command types, and these flags are used in
|
|
||||||
* ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input each
|
|
||||||
* command expects. Currently only numeric and string input is supported. If a
|
|
||||||
* control command supports none of the _NUMERIC, _STRING, or _NO_INPUT options,
|
|
||||||
* then it is regarded as an "internal" control command - and not for use in
|
|
||||||
* config setting situations. As such, they're not available to the
|
|
||||||
* ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() access. Changes to
|
|
||||||
* this list of 'command types' should be reflected carefully in
|
|
||||||
* ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). */
|
|
||||||
|
|
||||||
/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */
|
|
||||||
#define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001
|
#define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001
|
||||||
/* accepts string input (cast from 'void*' to 'const char *', 4th parameter to
|
|
||||||
* ENGINE_ctrl) */
|
|
||||||
#define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002
|
#define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002
|
||||||
/* Indicates that the control command takes *no* input. Ie. the control command
|
|
||||||
* is unparameterised. */
|
|
||||||
#define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004
|
#define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004
|
||||||
/* Indicates that the control command is internal. This control command won't
|
|
||||||
* be shown in any output, and is only usable through the ENGINE_ctrl_cmd()
|
|
||||||
* function. */
|
|
||||||
#define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008
|
#define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008
|
||||||
|
|
||||||
/* NB: These 3 control commands are deprecated and should not be used. ENGINEs
|
|
||||||
* relying on these commands should compile conditional support for
|
|
||||||
* compatibility (eg. if these symbols are defined) but should also migrate the
|
|
||||||
* same functionality to their own ENGINE-specific control functions that can be
|
|
||||||
* "discovered" by calling applications. The fact these control commands
|
|
||||||
* wouldn't be "executable" (ie. usable by text-based config) doesn't change the
|
|
||||||
* fact that application code can find and use them without requiring per-ENGINE
|
|
||||||
* hacking. */
|
|
||||||
|
|
||||||
/* These flags are used to tell the ctrl function what should be done.
|
|
||||||
* All command numbers are shared between all engines, even if some don't
|
|
||||||
* make sense to some engines. In such a case, they do nothing but return
|
|
||||||
* the error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. */
|
|
||||||
#define ENGINE_CTRL_SET_LOGSTREAM 1
|
#define ENGINE_CTRL_SET_LOGSTREAM 1
|
||||||
#define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2
|
#define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2
|
||||||
#define ENGINE_CTRL_HUP 3 /* Close and reinitialise any
|
#define ENGINE_CTRL_HUP 3
|
||||||
handles/connections etc. */
|
#define ENGINE_CTRL_SET_USER_INTERFACE 4
|
||||||
#define ENGINE_CTRL_SET_USER_INTERFACE 4 /* Alternative to callback */
|
#define ENGINE_CTRL_SET_CALLBACK_DATA 5
|
||||||
#define ENGINE_CTRL_SET_CALLBACK_DATA 5 /* User-specific data, used
|
#define ENGINE_CTRL_LOAD_CONFIGURATION 6
|
||||||
when calling the password
|
#define ENGINE_CTRL_LOAD_SECTION 7
|
||||||
callback and the user
|
|
||||||
interface */
|
|
||||||
#define ENGINE_CTRL_LOAD_CONFIGURATION 6 /* Load a configuration, given
|
|
||||||
a string that represents a
|
|
||||||
file name or so */
|
|
||||||
#define ENGINE_CTRL_LOAD_SECTION 7 /* Load data from a given
|
|
||||||
section in the already loaded
|
|
||||||
configuration */
|
|
||||||
|
|
||||||
/* These control commands allow an application to deal with an arbitrary engine
|
|
||||||
* in a dynamic way. Warn: Negative return values indicate errors FOR THESE
|
|
||||||
* COMMANDS because zero is used to indicate 'end-of-list'. Other commands,
|
|
||||||
* including ENGINE-specific command types, return zero for an error.
|
|
||||||
*
|
|
||||||
* An ENGINE can choose to implement these ctrl functions, and can internally
|
|
||||||
* manage things however it chooses - it does so by setting the
|
|
||||||
* ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise the
|
|
||||||
* ENGINE_ctrl() code handles this on the ENGINE's behalf using the cmd_defns
|
|
||||||
* data (set using ENGINE_set_cmd_defns()). This means an ENGINE's ctrl()
|
|
||||||
* handler need only implement its own commands - the above "meta" commands will
|
|
||||||
* be taken care of. */
|
|
||||||
|
|
||||||
/* Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", then
|
|
||||||
* all the remaining control commands will return failure, so it is worth
|
|
||||||
* checking this first if the caller is trying to "discover" the engine's
|
|
||||||
* capabilities and doesn't want errors generated unnecessarily. */
|
|
||||||
#define ENGINE_CTRL_HAS_CTRL_FUNCTION 10
|
#define ENGINE_CTRL_HAS_CTRL_FUNCTION 10
|
||||||
/* Returns a positive command number for the first command supported by the
|
|
||||||
* engine. Returns zero if no ctrl commands are supported. */
|
|
||||||
#define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11
|
#define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11
|
||||||
/* The 'long' argument specifies a command implemented by the engine, and the
|
|
||||||
* return value is the next command supported, or zero if there are no more. */
|
|
||||||
#define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12
|
#define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12
|
||||||
/* The 'void*' argument is a command name (cast from 'const char *'), and the
|
|
||||||
* return value is the command that corresponds to it. */
|
|
||||||
#define ENGINE_CTRL_GET_CMD_FROM_NAME 13
|
#define ENGINE_CTRL_GET_CMD_FROM_NAME 13
|
||||||
/* The next two allow a command to be converted into its corresponding string
|
|
||||||
* form. In each case, the 'long' argument supplies the command. In the NAME_LEN
|
|
||||||
* case, the return value is the length of the command name (not counting a
|
|
||||||
* trailing EOL). In the NAME case, the 'void*' argument must be a string buffer
|
|
||||||
* large enough, and it will be populated with the name of the command (WITH a
|
|
||||||
* trailing EOL). */
|
|
||||||
#define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14
|
#define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14
|
||||||
#define ENGINE_CTRL_GET_NAME_FROM_CMD 15
|
#define ENGINE_CTRL_GET_NAME_FROM_CMD 15
|
||||||
/* The next two are similar but give a "short description" of a command. */
|
|
||||||
#define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16
|
#define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16
|
||||||
#define ENGINE_CTRL_GET_DESC_FROM_CMD 17
|
#define ENGINE_CTRL_GET_DESC_FROM_CMD 17
|
||||||
/* With this command, the return value is the OR'd combination of
|
|
||||||
* ENGINE_CMD_FLAG_*** values that indicate what kind of input a given
|
|
||||||
* engine-specific ctrl command expects. */
|
|
||||||
#define ENGINE_CTRL_GET_CMD_FLAGS 18
|
#define ENGINE_CTRL_GET_CMD_FLAGS 18
|
||||||
|
|
||||||
/* ENGINE implementations should start the numbering of their own control
|
|
||||||
* commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). */
|
|
||||||
#define ENGINE_CMD_BASE 200
|
#define ENGINE_CMD_BASE 200
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Prototypes for the stub functions in engine_stubs.c. They are provided to
|
* Prototypes for the stub functions in engine_stubs.c. They are provided to
|
||||||
* build M2Crypto, Dovecot, apr-utils without patching. All the other garbage
|
* build M2Crypto, Dovecot, apr-utils without patching.
|
||||||
* can hopefully go away soon.
|
|
||||||
*/
|
*/
|
||||||
#ifdef OPENSSL_NO_ENGINE
|
|
||||||
void ENGINE_load_builtin_engines(void);
|
void ENGINE_load_builtin_engines(void);
|
||||||
void ENGINE_load_dynamic(void);
|
void ENGINE_load_dynamic(void);
|
||||||
void ENGINE_load_openssl(void);
|
void ENGINE_load_openssl(void);
|
||||||
|
@ -261,7 +157,7 @@ int ENGINE_set_default(ENGINE *engine, unsigned int flags);
|
||||||
ENGINE *ENGINE_get_default_RSA(void);
|
ENGINE *ENGINE_get_default_RSA(void);
|
||||||
int ENGINE_set_default_RSA(ENGINE *engine);
|
int ENGINE_set_default_RSA(ENGINE *engine);
|
||||||
|
|
||||||
int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, long i, void *p,
|
int ENGINE_ctrl_cmd(ENGINE *engine, const char *cmd_name, long i, void *p,
|
||||||
void (*f)(void), int cmd_optional);
|
void (*f)(void), int cmd_optional);
|
||||||
int ENGINE_ctrl_cmd_string(ENGINE *engine, const char *cmd, const char *arg,
|
int ENGINE_ctrl_cmd_string(ENGINE *engine, const char *cmd, const char *arg,
|
||||||
int cmd_optional);
|
int cmd_optional);
|
||||||
|
@ -270,460 +166,6 @@ EVP_PKEY *ENGINE_load_private_key(ENGINE *engine, const char *key_id,
|
||||||
UI_METHOD *ui_method, void *callback_data);
|
UI_METHOD *ui_method, void *callback_data);
|
||||||
EVP_PKEY *ENGINE_load_public_key(ENGINE *engine, const char *key_id,
|
EVP_PKEY *ENGINE_load_public_key(ENGINE *engine, const char *key_id,
|
||||||
UI_METHOD *ui_method, void *callback_data);
|
UI_METHOD *ui_method, void *callback_data);
|
||||||
#else
|
|
||||||
/* If an ENGINE supports its own specific control commands and wishes the
|
|
||||||
* framework to handle the above 'ENGINE_CMD_***'-manipulation commands on its
|
|
||||||
* behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN entries
|
|
||||||
* to ENGINE_set_cmd_defns(). It should also implement a ctrl() handler that
|
|
||||||
* supports the stated commands (ie. the "cmd_num" entries as described by the
|
|
||||||
* array). NB: The array must be ordered in increasing order of cmd_num.
|
|
||||||
* "null-terminated" means that the last ENGINE_CMD_DEFN element has cmd_num set
|
|
||||||
* to zero and/or cmd_name set to NULL. */
|
|
||||||
typedef struct ENGINE_CMD_DEFN_st {
|
|
||||||
unsigned int cmd_num; /* The command number */
|
|
||||||
const char *cmd_name; /* The command name itself */
|
|
||||||
const char *cmd_desc; /* A short description of the command */
|
|
||||||
unsigned int cmd_flags; /* The input the command expects */
|
|
||||||
} ENGINE_CMD_DEFN;
|
|
||||||
|
|
||||||
/* Generic function pointer */
|
|
||||||
typedef int (*ENGINE_GEN_FUNC_PTR)(void);
|
|
||||||
/* Generic function pointer taking no arguments */
|
|
||||||
typedef int (*ENGINE_GEN_INT_FUNC_PTR)(ENGINE *);
|
|
||||||
/* Specific control function pointer */
|
|
||||||
typedef int (*ENGINE_CTRL_FUNC_PTR)(ENGINE *, int, long, void *,
|
|
||||||
void (*f)(void));
|
|
||||||
/* Generic load_key function pointer */
|
|
||||||
typedef EVP_PKEY * (*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *,
|
|
||||||
UI_METHOD *ui_method, void *callback_data);
|
|
||||||
typedef int (*ENGINE_SSL_CLIENT_CERT_PTR)(ENGINE *, SSL *ssl,
|
|
||||||
STACK_OF(X509_NAME) *ca_dn, X509 **pcert, EVP_PKEY **pkey,
|
|
||||||
STACK_OF(X509) **pother, UI_METHOD *ui_method, void *callback_data);
|
|
||||||
|
|
||||||
/* These callback types are for an ENGINE's handler for cipher and digest logic.
|
|
||||||
* These handlers have these prototypes;
|
|
||||||
* int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid);
|
|
||||||
* int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid);
|
|
||||||
* Looking at how to implement these handlers in the case of cipher support, if
|
|
||||||
* the framework wants the EVP_CIPHER for 'nid', it will call;
|
|
||||||
* foo(e, &p_evp_cipher, NULL, nid); (return zero for failure)
|
|
||||||
* If the framework wants a list of supported 'nid's, it will call;
|
|
||||||
* foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error)
|
|
||||||
*/
|
|
||||||
/* Returns to a pointer to the array of supported cipher 'nid's. If the second
|
|
||||||
* parameter is non-NULL it is set to the size of the returned array. */
|
|
||||||
typedef int (*ENGINE_CIPHERS_PTR)(ENGINE *, const EVP_CIPHER **,
|
|
||||||
const int **, int);
|
|
||||||
typedef int (*ENGINE_DIGESTS_PTR)(ENGINE *, const EVP_MD **, const int **, int);
|
|
||||||
typedef int (*ENGINE_PKEY_METHS_PTR)(ENGINE *, EVP_PKEY_METHOD **,
|
|
||||||
const int **, int);
|
|
||||||
typedef int (*ENGINE_PKEY_ASN1_METHS_PTR)(ENGINE *, EVP_PKEY_ASN1_METHOD **,
|
|
||||||
const int **, int);
|
|
||||||
|
|
||||||
/* STRUCTURE functions ... all of these functions deal with pointers to ENGINE
|
|
||||||
* structures where the pointers have a "structural reference". This means that
|
|
||||||
* their reference is to allowed access to the structure but it does not imply
|
|
||||||
* that the structure is functional. To simply increment or decrement the
|
|
||||||
* structural reference count, use ENGINE_by_id and ENGINE_free. NB: This is not
|
|
||||||
* required when iterating using ENGINE_get_next as it will automatically
|
|
||||||
* decrement the structural reference count of the "current" ENGINE and
|
|
||||||
* increment the structural reference count of the ENGINE it returns (unless it
|
|
||||||
* is NULL). */
|
|
||||||
|
|
||||||
/* Get the first/last "ENGINE" type available. */
|
|
||||||
ENGINE *ENGINE_get_first(void);
|
|
||||||
ENGINE *ENGINE_get_last(void);
|
|
||||||
/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */
|
|
||||||
ENGINE *ENGINE_get_next(ENGINE *e);
|
|
||||||
ENGINE *ENGINE_get_prev(ENGINE *e);
|
|
||||||
/* Add another "ENGINE" type into the array. */
|
|
||||||
int ENGINE_add(ENGINE *e);
|
|
||||||
/* Remove an existing "ENGINE" type from the array. */
|
|
||||||
int ENGINE_remove(ENGINE *e);
|
|
||||||
/* Retrieve an engine from the list by its unique "id" value. */
|
|
||||||
ENGINE *ENGINE_by_id(const char *id);
|
|
||||||
/* Add all the built-in engines. */
|
|
||||||
void ENGINE_load_openssl(void);
|
|
||||||
void ENGINE_load_dynamic(void);
|
|
||||||
#ifndef OPENSSL_NO_STATIC_ENGINE
|
|
||||||
void ENGINE_load_padlock(void);
|
|
||||||
#endif
|
|
||||||
void ENGINE_load_builtin_engines(void);
|
|
||||||
|
|
||||||
/* Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation
|
|
||||||
* "registry" handling. */
|
|
||||||
unsigned int ENGINE_get_table_flags(void);
|
|
||||||
void ENGINE_set_table_flags(unsigned int flags);
|
|
||||||
|
|
||||||
/* Manage registration of ENGINEs per "table". For each type, there are 3
|
|
||||||
* functions;
|
|
||||||
* ENGINE_register_***(e) - registers the implementation from 'e' (if it has one)
|
|
||||||
* ENGINE_unregister_***(e) - unregister the implementation from 'e'
|
|
||||||
* ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list
|
|
||||||
* Cleanup is automatically registered from each table when required, so
|
|
||||||
* ENGINE_cleanup() will reverse any "register" operations. */
|
|
||||||
|
|
||||||
int ENGINE_register_RSA(ENGINE *e);
|
|
||||||
void ENGINE_unregister_RSA(ENGINE *e);
|
|
||||||
void ENGINE_register_all_RSA(void);
|
|
||||||
|
|
||||||
int ENGINE_register_DSA(ENGINE *e);
|
|
||||||
void ENGINE_unregister_DSA(ENGINE *e);
|
|
||||||
void ENGINE_register_all_DSA(void);
|
|
||||||
|
|
||||||
int ENGINE_register_EC(ENGINE *e);
|
|
||||||
void ENGINE_unregister_EC(ENGINE *e);
|
|
||||||
void ENGINE_register_all_EC(void);
|
|
||||||
|
|
||||||
int ENGINE_register_DH(ENGINE *e);
|
|
||||||
void ENGINE_unregister_DH(ENGINE *e);
|
|
||||||
void ENGINE_register_all_DH(void);
|
|
||||||
|
|
||||||
int ENGINE_register_RAND(ENGINE *e);
|
|
||||||
void ENGINE_unregister_RAND(ENGINE *e);
|
|
||||||
void ENGINE_register_all_RAND(void);
|
|
||||||
|
|
||||||
int ENGINE_register_STORE(ENGINE *e);
|
|
||||||
void ENGINE_unregister_STORE(ENGINE *e);
|
|
||||||
void ENGINE_register_all_STORE(void);
|
|
||||||
|
|
||||||
int ENGINE_register_ciphers(ENGINE *e);
|
|
||||||
void ENGINE_unregister_ciphers(ENGINE *e);
|
|
||||||
void ENGINE_register_all_ciphers(void);
|
|
||||||
|
|
||||||
int ENGINE_register_digests(ENGINE *e);
|
|
||||||
void ENGINE_unregister_digests(ENGINE *e);
|
|
||||||
void ENGINE_register_all_digests(void);
|
|
||||||
|
|
||||||
int ENGINE_register_pkey_meths(ENGINE *e);
|
|
||||||
void ENGINE_unregister_pkey_meths(ENGINE *e);
|
|
||||||
void ENGINE_register_all_pkey_meths(void);
|
|
||||||
|
|
||||||
int ENGINE_register_pkey_asn1_meths(ENGINE *e);
|
|
||||||
void ENGINE_unregister_pkey_asn1_meths(ENGINE *e);
|
|
||||||
void ENGINE_register_all_pkey_asn1_meths(void);
|
|
||||||
|
|
||||||
/* These functions register all support from the above categories. Note, use of
|
|
||||||
* these functions can result in static linkage of code your application may not
|
|
||||||
* need. If you only need a subset of functionality, consider using more
|
|
||||||
* selective initialisation. */
|
|
||||||
int ENGINE_register_complete(ENGINE *e);
|
|
||||||
int ENGINE_register_all_complete(void);
|
|
||||||
|
|
||||||
/* Send parametrised control commands to the engine. The possibilities to send
|
|
||||||
* down an integer, a pointer to data or a function pointer are provided. Any of
|
|
||||||
* the parameters may or may not be NULL, depending on the command number. In
|
|
||||||
* actuality, this function only requires a structural (rather than functional)
|
|
||||||
* reference to an engine, but many control commands may require the engine be
|
|
||||||
* functional. The caller should be aware of trying commands that require an
|
|
||||||
* operational ENGINE, and only use functional references in such situations. */
|
|
||||||
int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void));
|
|
||||||
|
|
||||||
/* This function tests if an ENGINE-specific command is usable as a "setting".
|
|
||||||
* Eg. in an application's config file that gets processed through
|
|
||||||
* ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to
|
|
||||||
* ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). */
|
|
||||||
int ENGINE_cmd_is_executable(ENGINE *e, int cmd);
|
|
||||||
|
|
||||||
/* This function works like ENGINE_ctrl() with the exception of taking a
|
|
||||||
* command name instead of a command number, and can handle optional commands.
|
|
||||||
* See the comment on ENGINE_ctrl_cmd_string() for an explanation on how to
|
|
||||||
* use the cmd_name and cmd_optional. */
|
|
||||||
int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name,
|
|
||||||
long i, void *p, void (*f)(void), int cmd_optional);
|
|
||||||
|
|
||||||
/* This function passes a command-name and argument to an ENGINE. The cmd_name
|
|
||||||
* is converted to a command number and the control command is called using
|
|
||||||
* 'arg' as an argument (unless the ENGINE doesn't support such a command, in
|
|
||||||
* which case no control command is called). The command is checked for input
|
|
||||||
* flags, and if necessary the argument will be converted to a numeric value. If
|
|
||||||
* cmd_optional is non-zero, then if the ENGINE doesn't support the given
|
|
||||||
* cmd_name the return value will be success anyway. This function is intended
|
|
||||||
* for applications to use so that users (or config files) can supply
|
|
||||||
* engine-specific config data to the ENGINE at run-time to control behaviour of
|
|
||||||
* specific engines. As such, it shouldn't be used for calling ENGINE_ctrl()
|
|
||||||
* functions that return data, deal with binary data, or that are otherwise
|
|
||||||
* supposed to be used directly through ENGINE_ctrl() in application code. Any
|
|
||||||
* "return" data from an ENGINE_ctrl() operation in this function will be lost -
|
|
||||||
* the return value is interpreted as failure if the return value is zero,
|
|
||||||
* success otherwise, and this function returns a boolean value as a result. In
|
|
||||||
* other words, vendors of 'ENGINE'-enabled devices should write ENGINE
|
|
||||||
* implementations with parameterisations that work in this scheme, so that
|
|
||||||
* compliant ENGINE-based applications can work consistently with the same
|
|
||||||
* configuration for the same ENGINE-enabled devices, across applications. */
|
|
||||||
int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg,
|
|
||||||
int cmd_optional);
|
|
||||||
|
|
||||||
/* These functions are useful for manufacturing new ENGINE structures. They
|
|
||||||
* don't address reference counting at all - one uses them to populate an ENGINE
|
|
||||||
* structure with personalised implementations of things prior to using it
|
|
||||||
* directly or adding it to the builtin ENGINE list in OpenSSL. These are also
|
|
||||||
* here so that the ENGINE structure doesn't have to be exposed and break binary
|
|
||||||
* compatibility! */
|
|
||||||
ENGINE *ENGINE_new(void);
|
|
||||||
int ENGINE_free(ENGINE *e);
|
|
||||||
int ENGINE_up_ref(ENGINE *e);
|
|
||||||
int ENGINE_set_id(ENGINE *e, const char *id);
|
|
||||||
int ENGINE_set_name(ENGINE *e, const char *name);
|
|
||||||
int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth);
|
|
||||||
int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth);
|
|
||||||
int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ec_meth);
|
|
||||||
int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth);
|
|
||||||
int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth);
|
|
||||||
int ENGINE_set_STORE(ENGINE *e, const STORE_METHOD *store_meth);
|
|
||||||
int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f);
|
|
||||||
int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f);
|
|
||||||
int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f);
|
|
||||||
int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f);
|
|
||||||
int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f);
|
|
||||||
int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f);
|
|
||||||
int ENGINE_set_load_ssl_client_cert_function(ENGINE *e,
|
|
||||||
ENGINE_SSL_CLIENT_CERT_PTR loadssl_f);
|
|
||||||
int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f);
|
|
||||||
int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f);
|
|
||||||
int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f);
|
|
||||||
int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f);
|
|
||||||
int ENGINE_set_flags(ENGINE *e, int flags);
|
|
||||||
int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns);
|
|
||||||
/* These functions allow control over any per-structure ENGINE data. */
|
|
||||||
int ENGINE_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
|
|
||||||
CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
|
|
||||||
int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg);
|
|
||||||
void *ENGINE_get_ex_data(const ENGINE *e, int idx);
|
|
||||||
|
|
||||||
/* This function cleans up anything that needs it. Eg. the ENGINE_add() function
|
|
||||||
* automatically ensures the list cleanup function is registered to be called
|
|
||||||
* from ENGINE_cleanup(). Similarly, all ENGINE_register_*** functions ensure
|
|
||||||
* ENGINE_cleanup() will clean up after them. */
|
|
||||||
void ENGINE_cleanup(void);
|
|
||||||
|
|
||||||
/* These return values from within the ENGINE structure. These can be useful
|
|
||||||
* with functional references as well as structural references - it depends
|
|
||||||
* which you obtained. Using the result for functional purposes if you only
|
|
||||||
* obtained a structural reference may be problematic! */
|
|
||||||
const char *ENGINE_get_id(const ENGINE *e);
|
|
||||||
const char *ENGINE_get_name(const ENGINE *e);
|
|
||||||
const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e);
|
|
||||||
const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e);
|
|
||||||
const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e);
|
|
||||||
const DH_METHOD *ENGINE_get_DH(const ENGINE *e);
|
|
||||||
const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e);
|
|
||||||
const STORE_METHOD *ENGINE_get_STORE(const ENGINE *e);
|
|
||||||
ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e);
|
|
||||||
ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e);
|
|
||||||
ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e);
|
|
||||||
ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e);
|
|
||||||
ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e);
|
|
||||||
ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e);
|
|
||||||
ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE *e);
|
|
||||||
ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e);
|
|
||||||
ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e);
|
|
||||||
ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e);
|
|
||||||
ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e);
|
|
||||||
const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid);
|
|
||||||
const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid);
|
|
||||||
const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid);
|
|
||||||
const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid);
|
|
||||||
const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e,
|
|
||||||
const char *str, int len);
|
|
||||||
const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe,
|
|
||||||
const char *str, int len);
|
|
||||||
const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e);
|
|
||||||
int ENGINE_get_flags(const ENGINE *e);
|
|
||||||
|
|
||||||
/* FUNCTIONAL functions. These functions deal with ENGINE structures
|
|
||||||
* that have (or will) be initialised for use. Broadly speaking, the
|
|
||||||
* structural functions are useful for iterating the list of available
|
|
||||||
* engine types, creating new engine types, and other "list" operations.
|
|
||||||
* These functions actually deal with ENGINEs that are to be used. As
|
|
||||||
* such these functions can fail (if applicable) when particular
|
|
||||||
* engines are unavailable - eg. if a hardware accelerator is not
|
|
||||||
* attached or not functioning correctly. Each ENGINE has 2 reference
|
|
||||||
* counts; structural and functional. Every time a functional reference
|
|
||||||
* is obtained or released, a corresponding structural reference is
|
|
||||||
* automatically obtained or released too. */
|
|
||||||
|
|
||||||
/* Initialise a engine type for use (or up its reference count if it's
|
|
||||||
* already in use). This will fail if the engine is not currently
|
|
||||||
* operational and cannot initialise. */
|
|
||||||
int ENGINE_init(ENGINE *e);
|
|
||||||
/* Free a functional reference to a engine type. This does not require
|
|
||||||
* a corresponding call to ENGINE_free as it also releases a structural
|
|
||||||
* reference. */
|
|
||||||
int ENGINE_finish(ENGINE *e);
|
|
||||||
|
|
||||||
/* The following functions handle keys that are stored in some secondary
|
|
||||||
* location, handled by the engine. The storage may be on a card or
|
|
||||||
* whatever. */
|
|
||||||
EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id,
|
|
||||||
UI_METHOD *ui_method, void *callback_data);
|
|
||||||
EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,
|
|
||||||
UI_METHOD *ui_method, void *callback_data);
|
|
||||||
int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s,
|
|
||||||
STACK_OF(X509_NAME) *ca_dn, X509 **pcert, EVP_PKEY **ppkey,
|
|
||||||
STACK_OF(X509) **pother,
|
|
||||||
UI_METHOD *ui_method, void *callback_data);
|
|
||||||
|
|
||||||
/* This returns a pointer for the current ENGINE structure that
|
|
||||||
* is (by default) performing any RSA operations. The value returned
|
|
||||||
* is an incremented reference, so it should be free'd (ENGINE_finish)
|
|
||||||
* before it is discarded. */
|
|
||||||
ENGINE *ENGINE_get_default_RSA(void);
|
|
||||||
/* Same for the other "methods" */
|
|
||||||
ENGINE *ENGINE_get_default_DSA(void);
|
|
||||||
ENGINE *ENGINE_get_default_EC(void);
|
|
||||||
ENGINE *ENGINE_get_default_DH(void);
|
|
||||||
ENGINE *ENGINE_get_default_RAND(void);
|
|
||||||
/* These functions can be used to get a functional reference to perform
|
|
||||||
* ciphering or digesting corresponding to "nid". */
|
|
||||||
ENGINE *ENGINE_get_cipher_engine(int nid);
|
|
||||||
ENGINE *ENGINE_get_digest_engine(int nid);
|
|
||||||
ENGINE *ENGINE_get_pkey_meth_engine(int nid);
|
|
||||||
ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid);
|
|
||||||
|
|
||||||
/* This sets a new default ENGINE structure for performing RSA
|
|
||||||
* operations. If the result is non-zero (success) then the ENGINE
|
|
||||||
* structure will have had its reference count up'd so the caller
|
|
||||||
* should still free their own reference 'e'. */
|
|
||||||
int ENGINE_set_default_RSA(ENGINE *e);
|
|
||||||
int ENGINE_set_default_string(ENGINE *e, const char *def_list);
|
|
||||||
/* Same for the other "methods" */
|
|
||||||
int ENGINE_set_default_DSA(ENGINE *e);
|
|
||||||
int ENGINE_set_default_EC(ENGINE *e);
|
|
||||||
int ENGINE_set_default_DH(ENGINE *e);
|
|
||||||
int ENGINE_set_default_RAND(ENGINE *e);
|
|
||||||
int ENGINE_set_default_ciphers(ENGINE *e);
|
|
||||||
int ENGINE_set_default_digests(ENGINE *e);
|
|
||||||
int ENGINE_set_default_pkey_meths(ENGINE *e);
|
|
||||||
int ENGINE_set_default_pkey_asn1_meths(ENGINE *e);
|
|
||||||
|
|
||||||
/* The combination "set" - the flags are bitwise "OR"d from the
|
|
||||||
* ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()"
|
|
||||||
* function, this function can result in unnecessary static linkage. If your
|
|
||||||
* application requires only specific functionality, consider using more
|
|
||||||
* selective functions. */
|
|
||||||
int ENGINE_set_default(ENGINE *e, unsigned int flags);
|
|
||||||
|
|
||||||
void ENGINE_add_conf_module(void);
|
|
||||||
|
|
||||||
/* Deprecated functions ... */
|
|
||||||
/* int ENGINE_clear_defaults(void); */
|
|
||||||
|
|
||||||
/**************************/
|
|
||||||
/* DYNAMIC ENGINE SUPPORT */
|
|
||||||
/**************************/
|
|
||||||
|
|
||||||
/* Binary/behaviour compatibility levels */
|
|
||||||
#define OSSL_DYNAMIC_VERSION (unsigned long)0x00020000
|
|
||||||
/* Binary versions older than this are too old for us (whether we're a loader or
|
|
||||||
* a loadee) */
|
|
||||||
#define OSSL_DYNAMIC_OLDEST (unsigned long)0x00020000
|
|
||||||
|
|
||||||
/* When compiling an ENGINE entirely as an external shared library, loadable by
|
|
||||||
* the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' structure
|
|
||||||
* type provides the calling application's (or library's) error functionality
|
|
||||||
* and memory management function pointers to the loaded library. These should
|
|
||||||
* be used/set in the loaded library code so that the loading application's
|
|
||||||
* 'state' will be used/changed in all operations. The 'static_state' pointer
|
|
||||||
* allows the loaded library to know if it shares the same static data as the
|
|
||||||
* calling application (or library), and thus whether these callbacks need to be
|
|
||||||
* set or not. */
|
|
||||||
typedef void *(*dyn_MEM_malloc_cb)(size_t);
|
|
||||||
typedef void *(*dyn_MEM_realloc_cb)(void *, size_t);
|
|
||||||
typedef void (*dyn_MEM_free_cb)(void *);
|
|
||||||
typedef struct st_dynamic_MEM_fns {
|
|
||||||
dyn_MEM_malloc_cb malloc_cb;
|
|
||||||
dyn_MEM_realloc_cb realloc_cb;
|
|
||||||
dyn_MEM_free_cb free_cb;
|
|
||||||
} dynamic_MEM_fns;
|
|
||||||
/* FIXME: Perhaps the memory and locking code (crypto.h) should declare and use
|
|
||||||
* these types so we (and any other dependent code) can simplify a bit?? */
|
|
||||||
typedef void (*dyn_lock_locking_cb)(int, int, const char *, int);
|
|
||||||
typedef int (*dyn_lock_add_lock_cb)(int*, int, int, const char *, int);
|
|
||||||
typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb)(
|
|
||||||
const char *, int);
|
|
||||||
typedef void (*dyn_dynlock_lock_cb)(int, struct CRYPTO_dynlock_value *,
|
|
||||||
const char *, int);
|
|
||||||
typedef void (*dyn_dynlock_destroy_cb)(struct CRYPTO_dynlock_value *,
|
|
||||||
const char *, int);
|
|
||||||
typedef struct st_dynamic_LOCK_fns {
|
|
||||||
dyn_lock_locking_cb lock_locking_cb;
|
|
||||||
dyn_lock_add_lock_cb lock_add_lock_cb;
|
|
||||||
dyn_dynlock_create_cb dynlock_create_cb;
|
|
||||||
dyn_dynlock_lock_cb dynlock_lock_cb;
|
|
||||||
dyn_dynlock_destroy_cb dynlock_destroy_cb;
|
|
||||||
} dynamic_LOCK_fns;
|
|
||||||
/* The top-level structure */
|
|
||||||
typedef struct st_dynamic_fns {
|
|
||||||
void *static_state;
|
|
||||||
const ERR_FNS *err_fns;
|
|
||||||
const CRYPTO_EX_DATA_IMPL *ex_data_fns;
|
|
||||||
dynamic_MEM_fns mem_fns;
|
|
||||||
dynamic_LOCK_fns lock_fns;
|
|
||||||
} dynamic_fns;
|
|
||||||
|
|
||||||
/* The version checking function should be of this prototype. NB: The
|
|
||||||
* ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading code.
|
|
||||||
* If this function returns zero, it indicates a (potential) version
|
|
||||||
* incompatibility and the loaded library doesn't believe it can proceed.
|
|
||||||
* Otherwise, the returned value is the (latest) version supported by the
|
|
||||||
* loading library. The loader may still decide that the loaded code's version
|
|
||||||
* is unsatisfactory and could veto the load. The function is expected to
|
|
||||||
* be implemented with the symbol name "v_check", and a default implementation
|
|
||||||
* can be fully instantiated with IMPLEMENT_DYNAMIC_CHECK_FN(). */
|
|
||||||
typedef unsigned long (*dynamic_v_check_fn)(unsigned long ossl_version);
|
|
||||||
#define IMPLEMENT_DYNAMIC_CHECK_FN() \
|
|
||||||
extern unsigned long v_check(unsigned long v); \
|
|
||||||
extern unsigned long v_check(unsigned long v) { \
|
|
||||||
if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \
|
|
||||||
return 0; }
|
|
||||||
|
|
||||||
/* This function is passed the ENGINE structure to initialise with its own
|
|
||||||
* function and command settings. It should not adjust the structural or
|
|
||||||
* functional reference counts. If this function returns zero, (a) the load will
|
|
||||||
* be aborted, (b) the previous ENGINE state will be memcpy'd back onto the
|
|
||||||
* structure, and (c) the shared library will be unloaded. So implementations
|
|
||||||
* should do their own internal cleanup in failure circumstances otherwise they
|
|
||||||
* could leak. The 'id' parameter, if non-NULL, represents the ENGINE id that
|
|
||||||
* the loader is looking for. If this is NULL, the shared library can choose to
|
|
||||||
* return failure or to initialise a 'default' ENGINE. If non-NULL, the shared
|
|
||||||
* library must initialise only an ENGINE matching the passed 'id'. The function
|
|
||||||
* is expected to be implemented with the symbol name "bind_engine". A standard
|
|
||||||
* implementation can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where
|
|
||||||
* the parameter 'fn' is a callback function that populates the ENGINE structure
|
|
||||||
* and returns an int value (zero for failure). 'fn' should have prototype;
|
|
||||||
* [static] int fn(ENGINE *e, const char *id); */
|
|
||||||
typedef int (*dynamic_bind_engine)(ENGINE *e, const char *id,
|
|
||||||
const dynamic_fns *fns);
|
|
||||||
#define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
|
|
||||||
extern \
|
|
||||||
int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \
|
|
||||||
extern \
|
|
||||||
int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
|
|
||||||
if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \
|
|
||||||
if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \
|
|
||||||
fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \
|
|
||||||
return 0; \
|
|
||||||
if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \
|
|
||||||
return 0; \
|
|
||||||
if(!ERR_set_implementation(fns->err_fns)) return 0; \
|
|
||||||
skip_cbs: \
|
|
||||||
if(!fn(e,id)) return 0; \
|
|
||||||
return 1; }
|
|
||||||
|
|
||||||
/* If the loading application (or library) and the loaded ENGINE library share
|
|
||||||
* the same static data (eg. they're both dynamically linked to the same
|
|
||||||
* libcrypto.so) we need a way to avoid trying to set system callbacks - this
|
|
||||||
* would fail, and for the same reason that it's unnecessary to try. If the
|
|
||||||
* loaded ENGINE has (or gets from through the loader) its own copy of the
|
|
||||||
* libcrypto static data, we will need to set the callbacks. The easiest way to
|
|
||||||
* detect this is to have a function that returns a pointer to some static data
|
|
||||||
* and let the loading application and loaded ENGINE compare their respective
|
|
||||||
* values. */
|
|
||||||
void *ENGINE_get_static_state(void);
|
|
||||||
|
|
||||||
void ERR_load_ENGINE_strings(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Error codes for the ENGINE functions. */
|
/* Error codes for the ENGINE functions. */
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: engine_stubs.c,v 1.1 2023/07/21 09:04:23 tb Exp $ */
|
/* $OpenBSD: engine_stubs.c,v 1.3 2023/11/19 15:47:40 tb Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Written by Theo Buehler. Public domain.
|
* Written by Theo Buehler. Public domain.
|
||||||
|
@ -6,8 +6,6 @@
|
||||||
|
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
|
|
||||||
#ifdef OPENSSL_NO_ENGINE
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ENGINE_load_builtin_engines(void)
|
ENGINE_load_builtin_engines(void)
|
||||||
{
|
{
|
||||||
|
@ -95,7 +93,7 @@ ENGINE_set_default_RSA(ENGINE *engine)
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, long i, void *p,
|
ENGINE_ctrl_cmd(ENGINE *engine, const char *cmd_name, long i, void *p,
|
||||||
void (*f)(void), int cmd_optional)
|
void (*f)(void), int cmd_optional)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -121,5 +119,3 @@ ENGINE_load_public_key(ENGINE *engine, const char *key_id,
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: err_all.c,v 1.32 2023/07/28 09:46:36 tb Exp $ */
|
/* $OpenBSD: err_all.c,v 1.33 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -91,9 +91,6 @@
|
||||||
#ifndef OPENSSL_NO_EC
|
#ifndef OPENSSL_NO_EC
|
||||||
#include <openssl/ec.h>
|
#include <openssl/ec.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -129,9 +126,6 @@ ERR_load_crypto_strings_internal(void)
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_EC
|
#ifndef OPENSSL_NO_EC
|
||||||
ERR_load_EC_strings();
|
ERR_load_EC_strings();
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ERR_load_ENGINE_strings();
|
|
||||||
#endif
|
#endif
|
||||||
ERR_load_EVP_strings();
|
ERR_load_EVP_strings();
|
||||||
#ifndef OPENSSL_NO_GOST
|
#ifndef OPENSSL_NO_GOST
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: digest.c,v 1.38 2023/07/07 19:37:53 beck Exp $ */
|
/* $OpenBSD: digest.c,v 1.39 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -118,10 +118,6 @@
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -136,49 +132,6 @@ EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||||
{
|
{
|
||||||
EVP_MD_CTX_clear_flags(ctx, EVP_MD_CTX_FLAG_CLEANED);
|
EVP_MD_CTX_clear_flags(ctx, EVP_MD_CTX_FLAG_CLEANED);
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
/* Whether it's nice or not, "Inits" can be used on "Final"'d contexts
|
|
||||||
* so this context may already have an ENGINE! Try to avoid releasing
|
|
||||||
* the previous handle, re-querying for an ENGINE, and having a
|
|
||||||
* reinitialisation, when it may all be unnecessary. */
|
|
||||||
if (ctx->engine && ctx->digest && (!type ||
|
|
||||||
(type && (type->type == ctx->digest->type))))
|
|
||||||
goto skip_to_init;
|
|
||||||
if (type) {
|
|
||||||
/* Ensure an ENGINE left lying around from last time is cleared
|
|
||||||
* (the previous check attempted to avoid this if the same
|
|
||||||
* ENGINE and EVP_MD could be used). */
|
|
||||||
ENGINE_finish(ctx->engine);
|
|
||||||
if (impl != NULL) {
|
|
||||||
if (!ENGINE_init(impl)) {
|
|
||||||
EVPerror(EVP_R_INITIALIZATION_ERROR);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
/* Ask if an ENGINE is reserved for this job */
|
|
||||||
impl = ENGINE_get_digest_engine(type->type);
|
|
||||||
if (impl != NULL) {
|
|
||||||
/* There's an ENGINE for this job ... (apparently) */
|
|
||||||
const EVP_MD *d = ENGINE_get_digest(impl, type->type);
|
|
||||||
if (d == NULL) {
|
|
||||||
/* Same comment from evp_enc.c */
|
|
||||||
EVPerror(EVP_R_INITIALIZATION_ERROR);
|
|
||||||
ENGINE_finish(impl);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* We'll use the ENGINE's private digest definition */
|
|
||||||
type = d;
|
|
||||||
/* Store the ENGINE functional reference so we know
|
|
||||||
* 'type' came from an ENGINE and we need to release
|
|
||||||
* it when done. */
|
|
||||||
ctx->engine = impl;
|
|
||||||
} else
|
|
||||||
ctx->engine = NULL;
|
|
||||||
} else if (!ctx->digest) {
|
|
||||||
EVPerror(EVP_R_NO_DIGEST_SET);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (ctx->digest != type) {
|
if (ctx->digest != type) {
|
||||||
if (ctx->digest && ctx->digest->ctx_size && ctx->md_data &&
|
if (ctx->digest && ctx->digest->ctx_size && ctx->md_data &&
|
||||||
!EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE)) {
|
!EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE)) {
|
||||||
|
@ -197,9 +150,6 @@ EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
skip_to_init:
|
|
||||||
#endif
|
|
||||||
if (ctx->pctx) {
|
if (ctx->pctx) {
|
||||||
int r;
|
int r;
|
||||||
r = EVP_PKEY_CTX_ctrl(ctx->pctx, -1, EVP_PKEY_OP_TYPE_SIG,
|
r = EVP_PKEY_CTX_ctrl(ctx->pctx, -1, EVP_PKEY_OP_TYPE_SIG,
|
||||||
|
@ -266,13 +216,6 @@ EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
|
||||||
EVPerror(EVP_R_INPUT_NOT_INITIALIZED);
|
EVPerror(EVP_R_INPUT_NOT_INITIALIZED);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
/* Make sure it's safe to copy a digest context using an ENGINE */
|
|
||||||
if (in->engine && !ENGINE_init(in->engine)) {
|
|
||||||
EVPerror(ERR_R_ENGINE_LIB);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (out->digest == in->digest) {
|
if (out->digest == in->digest) {
|
||||||
tmp_buf = out->md_data;
|
tmp_buf = out->md_data;
|
||||||
|
@ -397,9 +340,6 @@ EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
|
||||||
*/
|
*/
|
||||||
if (!EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX))
|
if (!EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_KEEP_PKEY_CTX))
|
||||||
EVP_PKEY_CTX_free(ctx->pctx);
|
EVP_PKEY_CTX_free(ctx->pctx);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(ctx->engine);
|
|
||||||
#endif
|
|
||||||
memset(ctx, 0, sizeof(*ctx));
|
memset(ctx, 0, sizeof(*ctx));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: e_aes.c,v 1.54 2023/09/28 11:29:10 tb Exp $ */
|
/* $OpenBSD: e_aes.c,v 1.55 2023/11/18 09:37:15 tb Exp $ */
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved.
|
* Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -2460,7 +2460,11 @@ aes_wrap_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iv != NULL) {
|
if (iv != NULL) {
|
||||||
memcpy(ctx->iv, iv, EVP_CIPHER_CTX_iv_length(ctx));
|
int iv_len = EVP_CIPHER_CTX_iv_length(ctx);
|
||||||
|
|
||||||
|
if (iv_len < 0 || iv_len > sizeof(ctx->iv))
|
||||||
|
return 0;
|
||||||
|
memcpy(ctx->iv, iv, iv_len);
|
||||||
wctx->iv = ctx->iv;
|
wctx->iv = ctx->iv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: e_rc2.c,v 1.22 2023/07/07 19:37:53 beck Exp $ */
|
/* $OpenBSD: e_rc2.c,v 1.24 2023/11/18 10:46:58 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -338,17 +338,17 @@ rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
||||||
long num = 0;
|
long num = 0;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int key_bits;
|
int key_bits;
|
||||||
unsigned int l;
|
int l;
|
||||||
unsigned char iv[EVP_MAX_IV_LENGTH];
|
unsigned char iv[EVP_MAX_IV_LENGTH];
|
||||||
|
|
||||||
if (type != NULL) {
|
if (type != NULL) {
|
||||||
l = EVP_CIPHER_CTX_iv_length(c);
|
l = EVP_CIPHER_CTX_iv_length(c);
|
||||||
if (l > sizeof(iv)) {
|
if (l < 0 || l > sizeof(iv)) {
|
||||||
EVPerror(EVP_R_IV_TOO_LARGE);
|
EVPerror(EVP_R_IV_TOO_LARGE);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
i = ASN1_TYPE_get_int_octetstring(type, &num, iv, l);
|
i = ASN1_TYPE_get_int_octetstring(type, &num, iv, l);
|
||||||
if (i != (int)l)
|
if (i != l)
|
||||||
return (-1);
|
return (-1);
|
||||||
key_bits = rc2_magic_to_meth((int)num);
|
key_bits = rc2_magic_to_meth((int)num);
|
||||||
if (!key_bits)
|
if (!key_bits)
|
||||||
|
@ -373,6 +373,8 @@ rc2_set_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
||||||
if (type != NULL) {
|
if (type != NULL) {
|
||||||
num = rc2_meth_to_magic(c);
|
num = rc2_meth_to_magic(c);
|
||||||
j = EVP_CIPHER_CTX_iv_length(c);
|
j = EVP_CIPHER_CTX_iv_length(c);
|
||||||
|
if (j < 0 || j > sizeof(c->oiv))
|
||||||
|
return 0;
|
||||||
i = ASN1_TYPE_set_int_octetstring(type, num, c->oiv, j);
|
i = ASN1_TYPE_set_int_octetstring(type, num, c->oiv, j);
|
||||||
}
|
}
|
||||||
return (i);
|
return (i);
|
||||||
|
@ -381,9 +383,15 @@ rc2_set_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
||||||
static int
|
static int
|
||||||
rc2_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
|
rc2_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
|
||||||
{
|
{
|
||||||
|
int iv_len;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case EVP_CTRL_INIT:
|
case EVP_CTRL_INIT:
|
||||||
data(c)->key_bits = EVP_CIPHER_CTX_key_length(c) * 8;
|
data(c)->key_bits = 0;
|
||||||
|
/* XXX - upper bound? */
|
||||||
|
if ((iv_len = EVP_CIPHER_CTX_key_length(c)) < 0)
|
||||||
|
return -1;
|
||||||
|
data(c)->key_bits = iv_len * 8;
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
case EVP_CTRL_GET_RC2_KEY_BITS:
|
case EVP_CTRL_GET_RC2_KEY_BITS:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: evp_enc.c,v 1.53 2023/09/10 16:53:56 tb Exp $ */
|
/* $OpenBSD: evp_enc.c,v 1.55 2023/11/19 15:46:09 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -68,10 +68,6 @@
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -94,15 +90,6 @@ EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl,
|
||||||
enc = 1;
|
enc = 1;
|
||||||
ctx->encrypt = enc;
|
ctx->encrypt = enc;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
/* Whether it's nice or not, "Inits" can be used on "Final"'d contexts
|
|
||||||
* so this context may already have an ENGINE! Try to avoid releasing
|
|
||||||
* the previous handle, re-querying for an ENGINE, and having a
|
|
||||||
* reinitialisation, when it may all be unnecessary. */
|
|
||||||
if (ctx->engine && ctx->cipher &&
|
|
||||||
(!cipher || (cipher && (cipher->nid == ctx->cipher->nid))))
|
|
||||||
goto skip_to_init;
|
|
||||||
#endif
|
|
||||||
if (cipher) {
|
if (cipher) {
|
||||||
/* Ensure a context left lying around from last time is cleared
|
/* Ensure a context left lying around from last time is cleared
|
||||||
* (the previous check attempted to avoid this if the same
|
* (the previous check attempted to avoid this if the same
|
||||||
|
@ -114,32 +101,6 @@ EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl,
|
||||||
ctx->encrypt = enc;
|
ctx->encrypt = enc;
|
||||||
ctx->flags = flags;
|
ctx->flags = flags;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (impl) {
|
|
||||||
if (!ENGINE_init(impl)) {
|
|
||||||
EVPerror(EVP_R_INITIALIZATION_ERROR);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
/* Ask if an ENGINE is reserved for this job */
|
|
||||||
impl = ENGINE_get_cipher_engine(cipher->nid);
|
|
||||||
if (impl) {
|
|
||||||
/* There's an ENGINE for this job ... (apparently) */
|
|
||||||
const EVP_CIPHER *c =
|
|
||||||
ENGINE_get_cipher(impl, cipher->nid);
|
|
||||||
if (!c) {
|
|
||||||
EVPerror(EVP_R_INITIALIZATION_ERROR);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* We'll use the ENGINE's private cipher definition */
|
|
||||||
cipher = c;
|
|
||||||
/* Store the ENGINE functional reference so we know
|
|
||||||
* 'cipher' came from an ENGINE and we need to release
|
|
||||||
* it when done. */
|
|
||||||
ctx->engine = impl;
|
|
||||||
} else
|
|
||||||
ctx->engine = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ctx->cipher = cipher;
|
ctx->cipher = cipher;
|
||||||
if (ctx->cipher->ctx_size) {
|
if (ctx->cipher->ctx_size) {
|
||||||
|
@ -163,9 +124,6 @@ EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl,
|
||||||
EVPerror(EVP_R_NO_CIPHER_SET);
|
EVPerror(EVP_R_NO_CIPHER_SET);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
skip_to_init:
|
|
||||||
#endif
|
|
||||||
/* we assume block size is a power of 2 in *cryptUpdate */
|
/* we assume block size is a power of 2 in *cryptUpdate */
|
||||||
if (ctx->cipher->block_size != 1 &&
|
if (ctx->cipher->block_size != 1 &&
|
||||||
ctx->cipher->block_size != 8 &&
|
ctx->cipher->block_size != 8 &&
|
||||||
|
@ -181,6 +139,8 @@ skip_to_init:
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_CUSTOM_IV)) {
|
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_CUSTOM_IV)) {
|
||||||
|
int iv_len;
|
||||||
|
|
||||||
switch (EVP_CIPHER_CTX_mode(ctx)) {
|
switch (EVP_CIPHER_CTX_mode(ctx)) {
|
||||||
|
|
||||||
case EVP_CIPH_STREAM_CIPHER:
|
case EVP_CIPH_STREAM_CIPHER:
|
||||||
|
@ -194,25 +154,26 @@ skip_to_init:
|
||||||
/* fall-through */
|
/* fall-through */
|
||||||
|
|
||||||
case EVP_CIPH_CBC_MODE:
|
case EVP_CIPH_CBC_MODE:
|
||||||
|
iv_len = EVP_CIPHER_CTX_iv_length(ctx);
|
||||||
if ((size_t)EVP_CIPHER_CTX_iv_length(ctx) >
|
if (iv_len < 0 || iv_len > sizeof(ctx->oiv)) {
|
||||||
sizeof(ctx->iv)) {
|
|
||||||
EVPerror(EVP_R_IV_TOO_LARGE);
|
EVPerror(EVP_R_IV_TOO_LARGE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (iv)
|
if (iv != NULL)
|
||||||
memcpy(ctx->oiv, iv,
|
memcpy(ctx->oiv, iv, iv_len);
|
||||||
EVP_CIPHER_CTX_iv_length(ctx));
|
memcpy(ctx->iv, ctx->oiv, iv_len);
|
||||||
memcpy(ctx->iv, ctx->oiv,
|
|
||||||
EVP_CIPHER_CTX_iv_length(ctx));
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EVP_CIPH_CTR_MODE:
|
case EVP_CIPH_CTR_MODE:
|
||||||
ctx->num = 0;
|
ctx->num = 0;
|
||||||
|
iv_len = EVP_CIPHER_CTX_iv_length(ctx);
|
||||||
|
if (iv_len < 0 || iv_len > sizeof(ctx->iv)) {
|
||||||
|
EVPerror(EVP_R_IV_TOO_LARGE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
/* Don't reuse IV for CTR mode */
|
/* Don't reuse IV for CTR mode */
|
||||||
if (iv)
|
if (iv != NULL)
|
||||||
memcpy(ctx->iv, iv,
|
memcpy(ctx->iv, iv, iv_len);
|
||||||
EVP_CIPHER_CTX_iv_length(ctx));
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -611,10 +572,6 @@ EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *c)
|
||||||
/* XXX - store size of cipher_data so we can always freezero(). */
|
/* XXX - store size of cipher_data so we can always freezero(). */
|
||||||
free(c->cipher_data);
|
free(c->cipher_data);
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(c->engine);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
explicit_bzero(c, sizeof(EVP_CIPHER_CTX));
|
explicit_bzero(c, sizeof(EVP_CIPHER_CTX));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -685,13 +642,6 @@ EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in)
|
||||||
EVPerror(EVP_R_INPUT_NOT_INITIALIZED);
|
EVPerror(EVP_R_INPUT_NOT_INITIALIZED);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
/* Make sure it's safe to copy a cipher context using an ENGINE */
|
|
||||||
if (in->engine && !ENGINE_init(in->engine)) {
|
|
||||||
EVPerror(ERR_R_ENGINE_LIB);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
EVP_CIPHER_CTX_cleanup(out);
|
EVP_CIPHER_CTX_cleanup(out);
|
||||||
memcpy(out, in, sizeof *out);
|
memcpy(out, in, sizeof *out);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: evp_lib.c,v 1.28 2023/09/28 11:29:10 tb Exp $ */
|
/* $OpenBSD: evp_lib.c,v 1.29 2023/11/18 09:37:15 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -98,16 +98,16 @@ int
|
||||||
EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
unsigned int l;
|
int l;
|
||||||
|
|
||||||
if (type != NULL) {
|
if (type != NULL) {
|
||||||
l = EVP_CIPHER_CTX_iv_length(c);
|
l = EVP_CIPHER_CTX_iv_length(c);
|
||||||
if (l > sizeof(c->iv)) {
|
if (l < 0 || l > sizeof(c->iv)) {
|
||||||
EVPerror(EVP_R_IV_TOO_LARGE);
|
EVPerror(EVP_R_IV_TOO_LARGE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
i = ASN1_TYPE_get_octetstring(type, c->oiv, l);
|
i = ASN1_TYPE_get_octetstring(type, c->oiv, l);
|
||||||
if (i != (int)l)
|
if (i != l)
|
||||||
return (-1);
|
return (-1);
|
||||||
else if (i > 0)
|
else if (i > 0)
|
||||||
memcpy(c->iv, c->oiv, l);
|
memcpy(c->iv, c->oiv, l);
|
||||||
|
@ -119,11 +119,11 @@ int
|
||||||
EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
unsigned int j;
|
int j;
|
||||||
|
|
||||||
if (type != NULL) {
|
if (type != NULL) {
|
||||||
j = EVP_CIPHER_CTX_iv_length(c);
|
j = EVP_CIPHER_CTX_iv_length(c);
|
||||||
if (j > sizeof(c->iv)) {
|
if (j < 0 || j > sizeof(c->iv)) {
|
||||||
EVPerror(EVP_R_IV_TOO_LARGE);
|
EVPerror(EVP_R_IV_TOO_LARGE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: p_lib.c,v 1.37 2023/09/10 17:32:17 tb Exp $ */
|
/* $OpenBSD: p_lib.c,v 1.38 2023/11/19 15:46:10 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -77,10 +77,6 @@
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "asn1_local.h"
|
#include "asn1_local.h"
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
|
|
||||||
|
@ -245,19 +241,11 @@ pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char *str, int len)
|
||||||
*/
|
*/
|
||||||
if ((type == pkey->save_type) && pkey->ameth)
|
if ((type == pkey->save_type) && pkey->ameth)
|
||||||
return 1;
|
return 1;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(pkey->engine);
|
|
||||||
pkey->engine = NULL;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (str)
|
if (str)
|
||||||
ameth = EVP_PKEY_asn1_find_str(eptr, str, len);
|
ameth = EVP_PKEY_asn1_find_str(eptr, str, len);
|
||||||
else
|
else
|
||||||
ameth = EVP_PKEY_asn1_find(eptr, type);
|
ameth = EVP_PKEY_asn1_find(eptr, type);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (pkey == NULL && eptr != NULL)
|
|
||||||
ENGINE_finish(e);
|
|
||||||
#endif
|
|
||||||
if (!ameth) {
|
if (!ameth) {
|
||||||
EVPerror(EVP_R_UNSUPPORTED_ALGORITHM);
|
EVPerror(EVP_R_UNSUPPORTED_ALGORITHM);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -583,9 +571,6 @@ EVP_PKEY_type(int type)
|
||||||
ret = ameth->pkey_id;
|
ret = ameth->pkey_id;
|
||||||
else
|
else
|
||||||
ret = NID_undef;
|
ret = NID_undef;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(e);
|
|
||||||
#endif
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -626,10 +611,6 @@ EVP_PKEY_free_it(EVP_PKEY *x)
|
||||||
x->ameth->pkey_free(x);
|
x->ameth->pkey_free(x);
|
||||||
x->pkey.ptr = NULL;
|
x->pkey.ptr = NULL;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(x->engine);
|
|
||||||
x->engine = NULL;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: p_seal.c,v 1.16 2023/07/07 19:37:54 beck Exp $ */
|
/* $OpenBSD: p_seal.c,v 1.17 2023/11/18 09:37:15 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -74,7 +74,7 @@ EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, unsigned char **ek,
|
||||||
int *ekl, unsigned char *iv, EVP_PKEY **pubk, int npubk)
|
int *ekl, unsigned char *iv, EVP_PKEY **pubk, int npubk)
|
||||||
{
|
{
|
||||||
unsigned char key[EVP_MAX_KEY_LENGTH];
|
unsigned char key[EVP_MAX_KEY_LENGTH];
|
||||||
int i;
|
int i, iv_len;
|
||||||
|
|
||||||
if (type) {
|
if (type) {
|
||||||
EVP_CIPHER_CTX_init(ctx);
|
EVP_CIPHER_CTX_init(ctx);
|
||||||
|
@ -85,8 +85,11 @@ EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, unsigned char **ek,
|
||||||
return 1;
|
return 1;
|
||||||
if (EVP_CIPHER_CTX_rand_key(ctx, key) <= 0)
|
if (EVP_CIPHER_CTX_rand_key(ctx, key) <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
if (EVP_CIPHER_CTX_iv_length(ctx))
|
/* XXX - upper bound? */
|
||||||
arc4random_buf(iv, EVP_CIPHER_CTX_iv_length(ctx));
|
if ((iv_len = EVP_CIPHER_CTX_iv_length(ctx)) < 0)
|
||||||
|
return 0;
|
||||||
|
if (iv_len > 0)
|
||||||
|
arc4random_buf(iv, iv_len);
|
||||||
|
|
||||||
if (!EVP_EncryptInit_ex(ctx, NULL, NULL, key, iv))
|
if (!EVP_EncryptInit_ex(ctx, NULL, NULL, key, iv))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: pmeth_lib.c,v 1.33 2023/07/07 19:37:54 beck Exp $ */
|
/* $OpenBSD: pmeth_lib.c,v 1.34 2023/11/19 15:43:52 tb Exp $ */
|
||||||
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
||||||
* project 2006.
|
* project 2006.
|
||||||
*/
|
*/
|
||||||
|
@ -68,10 +68,6 @@
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "asn1_local.h"
|
#include "asn1_local.h"
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
|
|
||||||
|
@ -161,26 +157,8 @@ evp_pkey_ctx_new(EVP_PKEY *pkey, ENGINE *engine, int id)
|
||||||
return NULL;
|
return NULL;
|
||||||
id = pkey->ameth->pkey_id;
|
id = pkey->ameth->pkey_id;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (pkey != NULL && pkey->engine != NULL)
|
|
||||||
engine = pkey->engine;
|
|
||||||
/* Try to find an ENGINE which implements this method. */
|
|
||||||
if (engine != NULL) {
|
|
||||||
if (!ENGINE_init(engine)) {
|
|
||||||
EVPerror(ERR_R_ENGINE_LIB);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
engine = ENGINE_get_pkey_meth_engine(id);
|
|
||||||
|
|
||||||
/* Look up method handler in ENGINE or use internal tables. */
|
if ((pmeth = EVP_PKEY_meth_find(id)) == NULL) {
|
||||||
if (engine != NULL)
|
|
||||||
pmeth = ENGINE_get_pkey_meth(engine, id);
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
pmeth = EVP_PKEY_meth_find(id);
|
|
||||||
|
|
||||||
if (pmeth == NULL) {
|
|
||||||
EVPerror(EVP_R_UNSUPPORTED_ALGORITHM);
|
EVPerror(EVP_R_UNSUPPORTED_ALGORITHM);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
@ -205,9 +183,6 @@ evp_pkey_ctx_new(EVP_PKEY *pkey, ENGINE *engine, int id)
|
||||||
|
|
||||||
err:
|
err:
|
||||||
EVP_PKEY_CTX_free(pkey_ctx);
|
EVP_PKEY_CTX_free(pkey_ctx);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(engine);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -275,22 +250,12 @@ EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx)
|
||||||
|
|
||||||
if (pctx->pmeth == NULL || pctx->pmeth->copy == NULL)
|
if (pctx->pmeth == NULL || pctx->pmeth->copy == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
/* Make sure it's safe to copy a pkey context using an ENGINE */
|
|
||||||
if (pctx->engine != NULL && !ENGINE_init(pctx->engine)) {
|
|
||||||
EVPerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if ((rctx = calloc(1, sizeof(*rctx))) == NULL) {
|
if ((rctx = calloc(1, sizeof(*rctx))) == NULL) {
|
||||||
EVPerror(ERR_R_MALLOC_FAILURE);
|
EVPerror(ERR_R_MALLOC_FAILURE);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
rctx->pmeth = pctx->pmeth;
|
rctx->pmeth = pctx->pmeth;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
rctx->engine = pctx->engine;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if ((rctx->pkey = pctx->pkey) != NULL)
|
if ((rctx->pkey = pctx->pkey) != NULL)
|
||||||
EVP_PKEY_up_ref(rctx->pkey);
|
EVP_PKEY_up_ref(rctx->pkey);
|
||||||
|
@ -333,9 +298,6 @@ EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
|
||||||
ctx->pmeth->cleanup(ctx);
|
ctx->pmeth->cleanup(ctx);
|
||||||
EVP_PKEY_free(ctx->pkey);
|
EVP_PKEY_free(ctx->pkey);
|
||||||
EVP_PKEY_free(ctx->peerkey);
|
EVP_PKEY_free(ctx->peerkey);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(ctx->engine);
|
|
||||||
#endif
|
|
||||||
free(ctx);
|
free(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: ASN1_TIME_set.3,v 1.20 2023/11/13 12:46:07 beck Exp $
|
.\" $OpenBSD: ASN1_TIME_set.3,v 1.21 2023/11/16 14:20:49 tb Exp $
|
||||||
.\" full merge up to: OpenSSL 3d0f1cb9 Jul 11 03:01:24 2017 +0800
|
.\" full merge up to: OpenSSL 3d0f1cb9 Jul 11 03:01:24 2017 +0800
|
||||||
.\" selective merge up to: OpenSSL 24a535ea Sep 22 13:14:20 2020 +0100
|
.\" selective merge up to: OpenSSL 24a535ea Sep 22 13:14:20 2020 +0100
|
||||||
.\"
|
.\"
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: November 13 2023 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt ASN1_TIME_SET 3
|
.Dt ASN1_TIME_SET 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -94,9 +94,9 @@
|
||||||
.Nm ASN1_TIME_cmp_time_t ,
|
.Nm ASN1_TIME_cmp_time_t ,
|
||||||
.Nm ASN1_UTCTIME_cmp_time_t ,
|
.Nm ASN1_UTCTIME_cmp_time_t ,
|
||||||
.Nm ASN1_TIME_compare ,
|
.Nm ASN1_TIME_compare ,
|
||||||
.Nm ASN1_TIME_to_generalizedtime
|
.Nm ASN1_TIME_to_generalizedtime ,
|
||||||
.Nm OPENSSL_gmtime ,
|
.Nm OPENSSL_gmtime ,
|
||||||
.Nm OPENSSL_timegm,
|
.Nm OPENSSL_timegm
|
||||||
.Nd ASN.1 Time functions
|
.Nd ASN.1 Time functions
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.In openssl/asn1.h
|
.In openssl/asn1.h
|
||||||
|
@ -516,6 +516,19 @@ and
|
||||||
functions act only on that specific time format, while the
|
functions act only on that specific time format, while the
|
||||||
.Vt ASN1_TIME
|
.Vt ASN1_TIME
|
||||||
functions operate on either format.
|
functions operate on either format.
|
||||||
|
.Pp
|
||||||
|
.Fn OPENSSL_gmtime
|
||||||
|
converts a time_t value in
|
||||||
|
.Fa time
|
||||||
|
to a struct tm in
|
||||||
|
.Fa out_tm
|
||||||
|
and also returns the struct passed in on success.
|
||||||
|
.Pp
|
||||||
|
.Fn OPENSSL_timegm
|
||||||
|
converts a time structure in UTC time in
|
||||||
|
.Fa tm
|
||||||
|
to a time_t value in
|
||||||
|
.Fa out_time .
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn ASN1_TIME_set ,
|
.Fn ASN1_TIME_set ,
|
||||||
.Fn ASN1_UTCTIME_set ,
|
.Fn ASN1_UTCTIME_set ,
|
||||||
|
@ -576,21 +589,11 @@ is later than
|
||||||
or \-2 on error.
|
or \-2 on error.
|
||||||
.Pp
|
.Pp
|
||||||
.Fn OPENSSL_timegm
|
.Fn OPENSSL_timegm
|
||||||
converts a time structure in UTC time in
|
|
||||||
.Fa tm
|
|
||||||
to a time_t value in
|
|
||||||
.Fa out_time
|
|
||||||
.Fn OPENSSL_timegm
|
|
||||||
returns 1 for success or 0 for failure.
|
returns 1 for success or 0 for failure.
|
||||||
It can fail if the time is not representable in a time_t,
|
It can fail if the time is not representable in a time_t,
|
||||||
or falls outside the range allowed in RFC 5280 times.
|
or falls outside the range allowed in RFC 5280 times.
|
||||||
.Pp
|
.Pp
|
||||||
.Fn OPENSSL_gmtime
|
.Fn OPENSSL_gmtime
|
||||||
converts a time_t value in
|
|
||||||
.Fa time
|
|
||||||
to a struct tm in
|
|
||||||
.Fa out_tm
|
|
||||||
.Fn OPENSSL_gmtime
|
|
||||||
returns
|
returns
|
||||||
.Fa out_tm
|
.Fa out_tm
|
||||||
on success or NULL for failure.
|
on success or NULL for failure.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: BIO_ctrl.3,v 1.24 2023/07/26 20:01:04 tb Exp $
|
.\" $OpenBSD: BIO_ctrl.3,v 1.25 2023/11/16 20:19:23 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL 24a535eaf Tue Sep 22 13:14:20 2020 +0100
|
.\" full merge up to: OpenSSL 24a535eaf Tue Sep 22 13:14:20 2020 +0100
|
||||||
.\" selective merge up to: OpenSSL 0c5bc96f Tue Mar 15 13:57:22 2022 +0000
|
.\" selective merge up to: OpenSSL 0c5bc96f Tue Mar 15 13:57:22 2022 +0000
|
||||||
.\"
|
.\"
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: July 26 2023 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt BIO_CTRL 3
|
.Dt BIO_CTRL 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -307,11 +307,6 @@ and
|
||||||
return a
|
return a
|
||||||
.Vt size_t
|
.Vt size_t
|
||||||
type and are functions.
|
type and are functions.
|
||||||
.Fn BIO_pending
|
|
||||||
and
|
|
||||||
.Fn BIO_wpending
|
|
||||||
are macros which call
|
|
||||||
.Fn BIO_ctrl .
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn BIO_set_info_callback
|
.Fn BIO_set_info_callback
|
||||||
installs the function pointer
|
installs the function pointer
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: BIO_get_data.3,v 1.7 2022/12/19 14:40:14 schwarze Exp $
|
.\" $OpenBSD: BIO_get_data.3,v 1.8 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL 24a535ea Sep 22 13:14:20 2020 +0100
|
.\" full merge up to: OpenSSL 24a535ea Sep 22 13:14:20 2020 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file is a derived work.
|
.\" This file is a derived work.
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: December 19 2022 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt BIO_GET_DATA 3
|
.Dt BIO_GET_DATA 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -204,7 +204,7 @@ Application programs usually call macros like those documented in
|
||||||
rather than calling
|
rather than calling
|
||||||
.Fn BIO_test_flags
|
.Fn BIO_test_flags
|
||||||
directly.
|
directly.
|
||||||
Flag bits correspond to accessor functions as follows:
|
Flag bits correspond to accessor macros as follows:
|
||||||
.Pp
|
.Pp
|
||||||
.Bl -tag -width BIO_FLAGS_SHOULD_RETRY -compact
|
.Bl -tag -width BIO_FLAGS_SHOULD_RETRY -compact
|
||||||
.It Dv BIO_FLAGS_READ
|
.It Dv BIO_FLAGS_READ
|
||||||
|
@ -319,6 +319,15 @@ object, call
|
||||||
and
|
and
|
||||||
.Xr BIO_get_close 3
|
.Xr BIO_get_close 3
|
||||||
instead.
|
instead.
|
||||||
|
.Pp
|
||||||
|
.Fn BIO_get_flags ,
|
||||||
|
.Fn BIO_set_retry_read ,
|
||||||
|
.Fn BIO_set_retry_write ,
|
||||||
|
.Fn BIO_set_retry_special ,
|
||||||
|
.Fn BIO_clear_retry_flags ,
|
||||||
|
and
|
||||||
|
.Fn BIO_get_retry_flags
|
||||||
|
are implemented as macros.
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn BIO_get_data
|
.Fn BIO_get_data
|
||||||
returns a pointer to the implementation specific custom data associated
|
returns a pointer to the implementation specific custom data associated
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: BIO_get_ex_new_index.3,v 1.14 2023/07/21 04:39:49 tb Exp $
|
.\" $OpenBSD: BIO_get_ex_new_index.3,v 1.17 2023/11/19 10:26:36 tb Exp $
|
||||||
.\" full merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
|
.\" full merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Rich Salz <rsalz@akamai.com>.
|
.\" This file was written by Rich Salz <rsalz@akamai.com>.
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: July 21 2023 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt BIO_GET_EX_NEW_INDEX 3
|
.Dt BIO_GET_EX_NEW_INDEX 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -57,9 +57,6 @@
|
||||||
.Nm BIO_get_ex_data ,
|
.Nm BIO_get_ex_data ,
|
||||||
.Nm BIO_set_app_data ,
|
.Nm BIO_set_app_data ,
|
||||||
.Nm BIO_get_app_data ,
|
.Nm BIO_get_app_data ,
|
||||||
.Nm ENGINE_get_ex_new_index ,
|
|
||||||
.Nm ENGINE_set_ex_data ,
|
|
||||||
.Nm ENGINE_get_ex_data ,
|
|
||||||
.Nm UI_get_ex_new_index ,
|
.Nm UI_get_ex_new_index ,
|
||||||
.Nm UI_set_ex_data ,
|
.Nm UI_set_ex_data ,
|
||||||
.Nm UI_get_ex_data ,
|
.Nm UI_get_ex_data ,
|
||||||
|
@ -72,7 +69,6 @@
|
||||||
.Nd application-specific data
|
.Nd application-specific data
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.In openssl/bio.h
|
.In openssl/bio.h
|
||||||
.In openssl/engine.h
|
|
||||||
.In openssl/ui.h
|
.In openssl/ui.h
|
||||||
.In openssl/x509.h
|
.In openssl/x509.h
|
||||||
.In openssl/ec.h
|
.In openssl/ec.h
|
||||||
|
@ -126,21 +122,21 @@ with the correct index value.
|
||||||
.Fn TYPE_set_ex_data
|
.Fn TYPE_set_ex_data
|
||||||
is a function that calls
|
is a function that calls
|
||||||
.Xr CRYPTO_set_ex_data 3
|
.Xr CRYPTO_set_ex_data 3
|
||||||
with an offset into the opaque exdata part of the
|
with an offset into the opaque ex_data part of the
|
||||||
.Vt TYPE
|
.Vt TYPE
|
||||||
object.
|
object.
|
||||||
.Pp
|
.Pp
|
||||||
.Fn TYPE_get_ex_data
|
.Fn TYPE_get_ex_data
|
||||||
is a function that calls
|
is a function that calls
|
||||||
.Xr CRYPTO_get_ex_data 3
|
.Xr CRYPTO_get_ex_data 3
|
||||||
with an offset into the opaque exdata part of the
|
with an offset into the opaque ex_data part of the
|
||||||
.Vt TYPE
|
.Vt TYPE
|
||||||
object.
|
object.
|
||||||
.Pp
|
.Pp
|
||||||
.Fn TYPE_set_app_data
|
.Fn TYPE_set_app_data
|
||||||
and
|
and
|
||||||
.Fn TYPE_get_app_data
|
.Fn TYPE_get_app_data
|
||||||
are deprecated wrappers that call
|
are deprecated wrapper macros that call
|
||||||
.Fn TYPE_set_ex_data
|
.Fn TYPE_set_ex_data
|
||||||
and
|
and
|
||||||
.Fn TYPE_get_ex_data
|
.Fn TYPE_get_ex_data
|
||||||
|
@ -187,9 +183,6 @@ and
|
||||||
first appeared in OpenSSL 0.9.5 and have been available since
|
first appeared in OpenSSL 0.9.5 and have been available since
|
||||||
.Ox 2.7 .
|
.Ox 2.7 .
|
||||||
.Pp
|
.Pp
|
||||||
.Fn ENGINE_get_ex_new_index ,
|
|
||||||
.Fn ENGINE_set_ex_data ,
|
|
||||||
.Fn ENGINE_get_ex_data ,
|
|
||||||
.Fn UI_get_ex_new_index ,
|
.Fn UI_get_ex_new_index ,
|
||||||
.Fn UI_set_ex_data ,
|
.Fn UI_set_ex_data ,
|
||||||
and
|
and
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: BIO_s_fd.3,v 1.12 2023/04/29 12:04:54 schwarze Exp $
|
.\" $OpenBSD: BIO_s_fd.3,v 1.13 2023/11/16 20:19:23 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
|
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
|
||||||
.\"
|
.\"
|
||||||
.\" This file is a derived work.
|
.\" This file is a derived work.
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: April 29 2023 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt BIO_S_FD 3
|
.Dt BIO_S_FD 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -147,7 +147,6 @@ to
|
||||||
.Fa fd
|
.Fa fd
|
||||||
and the close flag to
|
and the close flag to
|
||||||
.Fa close_flag .
|
.Fa close_flag .
|
||||||
It is currently implemented as a macro.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn BIO_get_fd
|
.Fn BIO_get_fd
|
||||||
places the file descriptor in
|
places the file descriptor in
|
||||||
|
@ -155,7 +154,6 @@ places the file descriptor in
|
||||||
if it is not
|
if it is not
|
||||||
.Dv NULL
|
.Dv NULL
|
||||||
and also returns the file descriptor.
|
and also returns the file descriptor.
|
||||||
It is currently implemented as a macro.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn BIO_new_fd
|
.Fn BIO_new_fd
|
||||||
returns a file descriptor BIO using
|
returns a file descriptor BIO using
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: BIO_s_file.3,v 1.16 2023/05/01 07:04:38 jsg Exp $
|
.\" $OpenBSD: BIO_s_file.3,v 1.17 2023/11/16 20:19:23 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
|
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
|
||||||
.\" selective merge up to: OpenSSL 1212818e Sep 11 13:22:14 2018 +0100
|
.\" selective merge up to: OpenSSL 1212818e Sep 11 13:22:14 2018 +0100
|
||||||
.\"
|
.\"
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: May 1 2023 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt BIO_S_FILE 3
|
.Dt BIO_S_FILE 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -196,14 +196,12 @@ sets the file pointer of a file BIO to
|
||||||
.Fa flags
|
.Fa flags
|
||||||
has the same meaning as in
|
has the same meaning as in
|
||||||
.Fn BIO_new_fp .
|
.Fn BIO_new_fp .
|
||||||
.Fn BIO_set_fp
|
|
||||||
is a macro.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn BIO_get_fp
|
.Fn BIO_get_fp
|
||||||
retrieves the file pointer of a file BIO, it is a macro.
|
retrieves the file pointer of a file BIO.
|
||||||
.Pp
|
.Pp
|
||||||
.Xr BIO_seek 3
|
.Xr BIO_seek 3
|
||||||
is a macro that sets the position pointer to
|
sets the position pointer to
|
||||||
.Fa offset
|
.Fa offset
|
||||||
bytes from the start of file.
|
bytes from the start of file.
|
||||||
.Pp
|
.Pp
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: BIO_s_mem.3,v 1.18 2023/04/29 12:04:54 schwarze Exp $
|
.\" $OpenBSD: BIO_s_mem.3,v 1.19 2023/11/16 20:19:23 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL 8711efb4 Mon Apr 20 11:33:12 2009 +0000
|
.\" full merge up to: OpenSSL 8711efb4 Mon Apr 20 11:33:12 2009 +0000
|
||||||
.\" selective merge up to: OpenSSL 36359cec Mar 7 14:37:23 2018 +0100
|
.\" selective merge up to: OpenSSL 36359cec Mar 7 14:37:23 2018 +0100
|
||||||
.\"
|
.\"
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: April 29 2023 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt BIO_S_MEM 3
|
.Dt BIO_S_MEM 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -158,7 +158,6 @@ sets
|
||||||
.Pf * Fa pp
|
.Pf * Fa pp
|
||||||
to a pointer to the start of the memory BIO's data
|
to a pointer to the start of the memory BIO's data
|
||||||
and returns the total amount of data available.
|
and returns the total amount of data available.
|
||||||
It is implemented as a macro.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn BIO_set_mem_buf
|
.Fn BIO_set_mem_buf
|
||||||
sets the internal BUF_MEM structure to
|
sets the internal BUF_MEM structure to
|
||||||
|
@ -171,15 +170,12 @@ should be either
|
||||||
.Dv BIO_CLOSE
|
.Dv BIO_CLOSE
|
||||||
or
|
or
|
||||||
.Dv BIO_NOCLOSE .
|
.Dv BIO_NOCLOSE .
|
||||||
.Fn BIO_set_mem_buf
|
|
||||||
is a macro.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn BIO_get_mem_ptr
|
.Fn BIO_get_mem_ptr
|
||||||
places the underlying
|
places the underlying
|
||||||
.Vt BUF_MEM
|
.Vt BUF_MEM
|
||||||
structure in
|
structure in
|
||||||
.Pf * Fa pp .
|
.Pf * Fa pp .
|
||||||
It is a macro.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn BIO_new_mem_buf
|
.Fn BIO_new_mem_buf
|
||||||
creates a memory BIO using
|
creates a memory BIO using
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: CONF_modules_load_file.3,v 1.11 2023/07/21 10:46:54 tb Exp $
|
.\" $OpenBSD: CONF_modules_load_file.3,v 1.14 2023/11/19 20:58:07 tb Exp $
|
||||||
.\" full merge up to: e9b77246 Jan 20 19:58:49 2017 +0100
|
.\" full merge up to: e9b77246 Jan 20 19:58:49 2017 +0100
|
||||||
.\" selective merge up to: d090fc00 Feb 26 13:11:10 2019 +0800
|
.\" selective merge up to: d090fc00 Feb 26 13:11:10 2019 +0800
|
||||||
.\"
|
.\"
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: July 21 2023 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt CONF_MODULES_LOAD_FILE 3
|
.Dt CONF_MODULES_LOAD_FILE 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -222,7 +222,6 @@ Load custom configuration file and section instead of the standard one,
|
||||||
only print warnings on error, missing configuration file ignored:
|
only print warnings on error, missing configuration file ignored:
|
||||||
.Bd -literal
|
.Bd -literal
|
||||||
OPENSSL_no_config();
|
OPENSSL_no_config();
|
||||||
ENGINE_load_builtin_engines();
|
|
||||||
OPENSSL_load_builtin_modules();
|
OPENSSL_load_builtin_modules();
|
||||||
if (CONF_modules_load_file("/something/app.cnf", "myapp",
|
if (CONF_modules_load_file("/something/app.cnf", "myapp",
|
||||||
CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) {
|
CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) {
|
||||||
|
@ -234,12 +233,10 @@ if (CONF_modules_load_file("/something/app.cnf", "myapp",
|
||||||
In the previous example, the call to
|
In the previous example, the call to
|
||||||
.Xr OPENSSL_no_config 3
|
.Xr OPENSSL_no_config 3
|
||||||
is required first to suppress automatic loading
|
is required first to suppress automatic loading
|
||||||
of the standard configuration file, and the calls to
|
of the standard configuration file, and the call to
|
||||||
.Xr ENGINE_load_builtin_engines 3
|
|
||||||
and
|
|
||||||
.Xr OPENSSL_load_builtin_modules 3
|
.Xr OPENSSL_load_builtin_modules 3
|
||||||
are needed so that the configuration of builtin modules and engines
|
is needed so that the configuration of builtin modules
|
||||||
is also loaded in addition to the configuration of
|
is loaded in addition to the configuration of
|
||||||
.Qq myapp .
|
.Qq myapp .
|
||||||
.Pp
|
.Pp
|
||||||
Load and parse configuration file manually, custom error handling:
|
Load and parse configuration file manually, custom error handling:
|
||||||
|
@ -270,7 +267,6 @@ if (fp == NULL) {
|
||||||
.Ed
|
.Ed
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr CONF_modules_free 3 ,
|
.Xr CONF_modules_free 3 ,
|
||||||
.Xr ENGINE_load_builtin_engines 3 ,
|
|
||||||
.Xr ERR 3 ,
|
.Xr ERR 3 ,
|
||||||
.Xr OPENSSL_config 3 ,
|
.Xr OPENSSL_config 3 ,
|
||||||
.Xr OPENSSL_load_builtin_modules 3
|
.Xr OPENSSL_load_builtin_modules 3
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: DES_set_key.3,v 1.15 2022/03/31 17:27:16 naddy Exp $
|
.\" $OpenBSD: DES_set_key.3,v 1.16 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" full merge up to:
|
.\" full merge up to:
|
||||||
.\" OpenSSL man3/DES_random_key 521738e9 Oct 5 14:58:30 2018 -0400
|
.\" OpenSSL man3/DES_random_key 521738e9 Oct 5 14:58:30 2018 -0400
|
||||||
.\"
|
.\"
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
.\" copied and put under another distribution licence
|
.\" copied and put under another distribution licence
|
||||||
.\" [including the GNU Public Licence.]
|
.\" [including the GNU Public Licence.]
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: March 31 2022 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt DES_SET_KEY 3
|
.Dt DES_SET_KEY 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -599,10 +599,11 @@ then update ivec and num.
|
||||||
num contains "how far" we are though ivec.
|
num contains "how far" we are though ivec.
|
||||||
If this does not make much sense, read more about CFB mode of DES.
|
If this does not make much sense, read more about CFB mode of DES.
|
||||||
.Pp
|
.Pp
|
||||||
|
The
|
||||||
.Fn DES_ede3_cfb64_encrypt
|
.Fn DES_ede3_cfb64_encrypt
|
||||||
and
|
function and the
|
||||||
.Fn DES_ede2_cfb64_encrypt
|
.Fn DES_ede2_cfb64_encrypt
|
||||||
is the same as
|
macro are the same as
|
||||||
.Fn DES_cfb64_encrypt
|
.Fn DES_cfb64_encrypt
|
||||||
except that Triple-DES is used.
|
except that Triple-DES is used.
|
||||||
.Pp
|
.Pp
|
||||||
|
@ -625,10 +626,11 @@ is the same as
|
||||||
.Fn DES_cfb64_encrypt
|
.Fn DES_cfb64_encrypt
|
||||||
using Output Feed Back mode.
|
using Output Feed Back mode.
|
||||||
.Pp
|
.Pp
|
||||||
|
The
|
||||||
.Fn DES_ede3_ofb64_encrypt
|
.Fn DES_ede3_ofb64_encrypt
|
||||||
and
|
function and the
|
||||||
.Fn DES_ede2_ofb64_encrypt
|
.Fn DES_ede2_ofb64_encrypt
|
||||||
is the same as
|
macro are the same as
|
||||||
.Fn DES_ofb64_encrypt ,
|
.Fn DES_ofb64_encrypt ,
|
||||||
using Triple-DES.
|
using Triple-DES.
|
||||||
.Pp
|
.Pp
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: DH_set_method.3,v 1.8 2022/01/15 23:38:50 jsg Exp $
|
.\" $OpenBSD: DH_set_method.3,v 1.9 2023/11/19 10:34:26 tb Exp $
|
||||||
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
|
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: January 15 2022 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt DH_SET_METHOD 3
|
.Dt DH_SET_METHOD 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -98,16 +98,9 @@ selects
|
||||||
as the default method for all
|
as the default method for all
|
||||||
.Vt DH
|
.Vt DH
|
||||||
structures created later.
|
structures created later.
|
||||||
If any
|
|
||||||
.Vt ENGINE
|
|
||||||
was registered with
|
|
||||||
.Xr ENGINE_register_DH 3
|
|
||||||
that can be successfully initialized, it overrides the default.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn DH_get_default_method
|
.Fn DH_get_default_method
|
||||||
returns a pointer to the current default method,
|
returns a pointer to the current default method.
|
||||||
even if it is actually overridden by an
|
|
||||||
.Vt ENGINE .
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn DH_set_method
|
.Fn DH_set_method
|
||||||
selects
|
selects
|
||||||
|
@ -118,17 +111,12 @@ This replaces the
|
||||||
.Vt DH_METHOD
|
.Vt DH_METHOD
|
||||||
used by the
|
used by the
|
||||||
.Fa dh
|
.Fa dh
|
||||||
key and if the previous method was supplied by an
|
key.
|
||||||
.Vt ENGINE ,
|
|
||||||
.Xr ENGINE_finish 3
|
|
||||||
is called on it.
|
|
||||||
It is possible to have
|
It is possible to have
|
||||||
.Vt DH
|
.Vt DH
|
||||||
keys that only work with certain
|
keys that only work with certain
|
||||||
.Vt DH_METHOD
|
.Vt DH_METHOD
|
||||||
implementations (e.g. from an
|
implementations,
|
||||||
.Vt ENGINE
|
|
||||||
module that supports embedded hardware-protected keys),
|
|
||||||
and in such cases attempting to change the
|
and in such cases attempting to change the
|
||||||
.Vt DH_METHOD
|
.Vt DH_METHOD
|
||||||
for the key can have unexpected results.
|
for the key can have unexpected results.
|
||||||
|
@ -136,17 +124,10 @@ for the key can have unexpected results.
|
||||||
.Fn DH_new_method
|
.Fn DH_new_method
|
||||||
allocates and initializes a
|
allocates and initializes a
|
||||||
.Vt DH
|
.Vt DH
|
||||||
structure so that
|
structure.
|
||||||
|
The
|
||||||
.Fa engine
|
.Fa engine
|
||||||
is used for the DH operations.
|
argument is ignored and
|
||||||
If
|
|
||||||
.Fa engine
|
|
||||||
is
|
|
||||||
.Dv NULL ,
|
|
||||||
.Xr ENGINE_get_default_DH 3
|
|
||||||
is used.
|
|
||||||
If that returns
|
|
||||||
.Dv NULL ,
|
|
||||||
the default method controlled by
|
the default method controlled by
|
||||||
.Fn DH_set_default_method
|
.Fn DH_set_default_method
|
||||||
is used.
|
is used.
|
||||||
|
@ -202,10 +183,7 @@ and sets an error code that can be obtained by
|
||||||
if the allocation fails.
|
if the allocation fails.
|
||||||
Otherwise it returns a pointer to the newly allocated structure.
|
Otherwise it returns a pointer to the newly allocated structure.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr DH_new 3 ,
|
.Xr DH_new 3
|
||||||
.Xr ENGINE_get_default_DH 3 ,
|
|
||||||
.Xr ENGINE_register_DH 3 ,
|
|
||||||
.Xr ENGINE_set_default_DH 3
|
|
||||||
.Sh HISTORY
|
.Sh HISTORY
|
||||||
.Fn DH_set_default_method ,
|
.Fn DH_set_default_method ,
|
||||||
.Fn DH_get_default_method ,
|
.Fn DH_get_default_method ,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: DSA_set_method.3,v 1.10 2022/01/15 23:38:50 jsg Exp $
|
.\" $OpenBSD: DSA_set_method.3,v 1.11 2023/11/19 10:34:26 tb Exp $
|
||||||
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
|
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: January 15 2022 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt DSA_SET_METHOD 3
|
.Dt DSA_SET_METHOD 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -93,16 +93,9 @@ selects
|
||||||
as the default method for all
|
as the default method for all
|
||||||
.Vt DSA
|
.Vt DSA
|
||||||
structures created later.
|
structures created later.
|
||||||
If any
|
|
||||||
.Vt ENGINE
|
|
||||||
was registered with
|
|
||||||
.Xr ENGINE_register_DSA 3
|
|
||||||
that can be successfully initialized, it overrides the default.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn DSA_get_default_method
|
.Fn DSA_get_default_method
|
||||||
returns a pointer to the current default method,
|
returns a pointer to the current default method.
|
||||||
even if it is actually overridden by an
|
|
||||||
.Vt ENGINE .
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn DSA_set_method
|
.Fn DSA_set_method
|
||||||
selects
|
selects
|
||||||
|
@ -111,15 +104,10 @@ to perform all operations using the key
|
||||||
.Fa dsa .
|
.Fa dsa .
|
||||||
This replaces the
|
This replaces the
|
||||||
.Vt DSA_METHOD
|
.Vt DSA_METHOD
|
||||||
used by the DSA key and if the previous method was supplied by an
|
used by the DSA key.
|
||||||
.Vt ENGINE ,
|
|
||||||
.Xr ENGINE_finish 3
|
|
||||||
is called on it.
|
|
||||||
It is possible to have DSA keys that only work with certain
|
It is possible to have DSA keys that only work with certain
|
||||||
.Vt DSA_METHOD
|
.Vt DSA_METHOD
|
||||||
implementations (e.g. from an
|
implementations,
|
||||||
.Vt ENGINE
|
|
||||||
module that supports embedded hardware-protected keys),
|
|
||||||
and in such cases attempting to change the
|
and in such cases attempting to change the
|
||||||
.Vt DSA_METHOD
|
.Vt DSA_METHOD
|
||||||
for the key can have unexpected results.
|
for the key can have unexpected results.
|
||||||
|
@ -127,17 +115,10 @@ for the key can have unexpected results.
|
||||||
.Fn DSA_new_method
|
.Fn DSA_new_method
|
||||||
allocates and initializes a
|
allocates and initializes a
|
||||||
.Vt DSA
|
.Vt DSA
|
||||||
structure so that
|
structure.
|
||||||
|
The
|
||||||
.Fa engine
|
.Fa engine
|
||||||
is used for the DSA operations.
|
argument is ignored and
|
||||||
If
|
|
||||||
.Fa engine
|
|
||||||
is
|
|
||||||
.Dv NULL ,
|
|
||||||
.Xr ENGINE_get_default_DSA 3
|
|
||||||
is used.
|
|
||||||
If that returns
|
|
||||||
.Dv NULL ,
|
|
||||||
the default method controlled by
|
the default method controlled by
|
||||||
.Fn DSA_set_default_method
|
.Fn DSA_set_default_method
|
||||||
is used.
|
is used.
|
||||||
|
@ -206,10 +187,7 @@ if the allocation fails.
|
||||||
Otherwise it returns a pointer to the newly allocated structure.
|
Otherwise it returns a pointer to the newly allocated structure.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr DSA_meth_new 3 ,
|
.Xr DSA_meth_new 3 ,
|
||||||
.Xr DSA_new 3 ,
|
.Xr DSA_new 3
|
||||||
.Xr ENGINE_get_default_DSA 3 ,
|
|
||||||
.Xr ENGINE_register_DSA 3 ,
|
|
||||||
.Xr ENGINE_set_default_DSA 3
|
|
||||||
.Sh HISTORY
|
.Sh HISTORY
|
||||||
.Fn DSA_set_default_method ,
|
.Fn DSA_set_default_method ,
|
||||||
.Fn DSA_get_default_method ,
|
.Fn DSA_get_default_method ,
|
||||||
|
|
|
@ -1,243 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_add.3,v 1.3 2018/04/18 03:39:22 schwarze Exp $
|
|
||||||
.\" content checked up to: OpenSSL 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: April 18 2018 $
|
|
||||||
.Dt ENGINE_ADD 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_add ,
|
|
||||||
.Nm ENGINE_set_id ,
|
|
||||||
.Nm ENGINE_get_id ,
|
|
||||||
.Nm ENGINE_set_name ,
|
|
||||||
.Nm ENGINE_get_name ,
|
|
||||||
.Nm ENGINE_remove ,
|
|
||||||
.Nm ENGINE_cleanup ,
|
|
||||||
.Nm ENGINE_get_first ,
|
|
||||||
.Nm ENGINE_get_last ,
|
|
||||||
.Nm ENGINE_get_next ,
|
|
||||||
.Nm ENGINE_get_prev ,
|
|
||||||
.Nm ENGINE_by_id
|
|
||||||
.Nd maintain a global list of ENGINE objects
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_add
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_id
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const char *id"
|
|
||||||
.Fc
|
|
||||||
.Ft const char *
|
|
||||||
.Fo ENGINE_get_id
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_name
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const char *name"
|
|
||||||
.Fc
|
|
||||||
.Ft const char *
|
|
||||||
.Fo ENGINE_get_name
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_remove
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_cleanup void
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fn ENGINE_get_first void
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fn ENGINE_get_last void
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fo ENGINE_get_next
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fo ENGINE_get_prev
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fo ENGINE_by_id
|
|
||||||
.Fa "const char *id"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The crypto library maintains a global list of
|
|
||||||
.Vt ENGINE
|
|
||||||
objects.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_add
|
|
||||||
appends
|
|
||||||
.Fa e
|
|
||||||
to the end of the list
|
|
||||||
and increments its structural reference count by 1.
|
|
||||||
A unique identifier and a name of
|
|
||||||
.Fa e
|
|
||||||
have to be set with
|
|
||||||
.Fn ENGINE_set_id
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_name
|
|
||||||
before calling this function.
|
|
||||||
.Fn ENGINE_add
|
|
||||||
fails if the list already contains an
|
|
||||||
.Vt ENGINE
|
|
||||||
with the same identifier.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_remove
|
|
||||||
removes
|
|
||||||
.Fa e
|
|
||||||
from the list.
|
|
||||||
If successful, it calls
|
|
||||||
.Xr ENGINE_free 3
|
|
||||||
on
|
|
||||||
.Fa e .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_cleanup
|
|
||||||
calls
|
|
||||||
.Xr ENGINE_finish 3
|
|
||||||
on all
|
|
||||||
.Vt ENGINE
|
|
||||||
objects that were selected as default engines, for example using the
|
|
||||||
functions documented in the
|
|
||||||
.Xr ENGINE_set_default 3
|
|
||||||
and
|
|
||||||
.Xr ENGINE_get_default_RSA 3
|
|
||||||
manual pages, and it calls
|
|
||||||
.Fn ENGINE_remove
|
|
||||||
on all
|
|
||||||
.Vt ENGINE
|
|
||||||
objects that were added to the global list with
|
|
||||||
.Fn ENGINE_add .
|
|
||||||
Calling this function is required at the end of each program using
|
|
||||||
.Fn ENGINE_add ,
|
|
||||||
even if no engines are explicitly registered or used.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_first
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_last
|
|
||||||
provide access to the first and last
|
|
||||||
.Vt ENGINE
|
|
||||||
object on the list, respectively.
|
|
||||||
Unless the list is empty, they increment the structural reference
|
|
||||||
count of the retrieved object by 1.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_next
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_prev
|
|
||||||
support iteration of the list.
|
|
||||||
They always call
|
|
||||||
.Xr ENGINE_free 3
|
|
||||||
on
|
|
||||||
.Fa e .
|
|
||||||
Unless the end of the list is reached, they increment the structural
|
|
||||||
reference count of the retrieved object by 1.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_by_id
|
|
||||||
searches the list for an
|
|
||||||
.Vt ENGINE
|
|
||||||
object with a matching
|
|
||||||
.Fa id .
|
|
||||||
If found, it increments the structural reference count of the
|
|
||||||
retrieved object by 1.
|
|
||||||
If
|
|
||||||
.Dv ENGINE_FLAGS_BY_ID_COPY
|
|
||||||
was set on
|
|
||||||
.Fa e
|
|
||||||
with
|
|
||||||
.Xr ENGINE_set_flags 3 ,
|
|
||||||
it returns a shallow copy of the object rather than incrementing
|
|
||||||
the reference count and returning a pointer to the original.
|
|
||||||
.Sh RETURN VALUES
|
|
||||||
.Fn ENGINE_add ,
|
|
||||||
.Fn ENGINE_set_id ,
|
|
||||||
.Fn ENGINE_set_name ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_remove
|
|
||||||
return 1 on success or 0 on error.
|
|
||||||
.Fn ENGINE_set_id
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_name
|
|
||||||
can only fail if the supplied
|
|
||||||
.Fa id
|
|
||||||
or
|
|
||||||
.Fa name
|
|
||||||
is
|
|
||||||
.Dv NULL .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_id
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_name
|
|
||||||
return a pointer to an internal string
|
|
||||||
representing the identifier and the name of
|
|
||||||
.Fa e ,
|
|
||||||
respectively.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_first
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_last
|
|
||||||
return an
|
|
||||||
.Vt ENGINE
|
|
||||||
object or
|
|
||||||
.Dv NULL
|
|
||||||
if the list is empty.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_next
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_prev
|
|
||||||
return an
|
|
||||||
.Vt ENGINE
|
|
||||||
object or
|
|
||||||
.Dv NULL
|
|
||||||
when the end of the list is reached.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_by_id
|
|
||||||
returns an
|
|
||||||
.Vt ENGINE
|
|
||||||
object or
|
|
||||||
.Dv NULL
|
|
||||||
if no matching object is found.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_get_default_RSA 3 ,
|
|
||||||
.Xr ENGINE_init 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_all_RSA 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_default 3 ,
|
|
||||||
.Xr ENGINE_set_flags 3 ,
|
|
||||||
.Xr ENGINE_unregister_RSA 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_add ,
|
|
||||||
.Fn ENGINE_set_id ,
|
|
||||||
.Fn ENGINE_get_id ,
|
|
||||||
.Fn ENGINE_set_name ,
|
|
||||||
.Fn ENGINE_get_name ,
|
|
||||||
.Fn ENGINE_remove ,
|
|
||||||
.Fn ENGINE_get_first ,
|
|
||||||
.Fn ENGINE_get_last ,
|
|
||||||
.Fn ENGINE_get_next ,
|
|
||||||
.Fn ENGINE_get_prev ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_by_id
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 2.9 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_cleanup
|
|
||||||
first appeared in OpenSSL 0.9.7 and has been available since
|
|
||||||
.Ox 3.2 .
|
|
|
@ -1,470 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_ctrl.3,v 1.5 2022/01/15 23:38:50 jsg Exp $
|
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: January 15 2022 $
|
|
||||||
.Dt ENGINE_CTRL 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_ctrl ,
|
|
||||||
.Nm ENGINE_cmd_is_executable ,
|
|
||||||
.Nm ENGINE_ctrl_cmd ,
|
|
||||||
.Nm ENGINE_ctrl_cmd_string ,
|
|
||||||
.Nm ENGINE_set_ctrl_function ,
|
|
||||||
.Nm ENGINE_get_ctrl_function ,
|
|
||||||
.Nm ENGINE_set_cmd_defns ,
|
|
||||||
.Nm ENGINE_get_cmd_defns
|
|
||||||
.Nd control commands for ENGINE objects
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_ctrl
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "int cmd"
|
|
||||||
.Fa "long i"
|
|
||||||
.Fa "void *p"
|
|
||||||
.Fa "void (*f)(void)"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_cmd_is_executable
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "int cmd"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_ctrl_cmd
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const char *cmd_name"
|
|
||||||
.Fa "long i"
|
|
||||||
.Fa "void *p"
|
|
||||||
.Fa "void (*f)(void)"
|
|
||||||
.Fa "int cmd_optional"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_ctrl_cmd_string
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const char *cmd_name"
|
|
||||||
.Fa "const char *arg"
|
|
||||||
.Fa "int cmd_optional"
|
|
||||||
.Fc
|
|
||||||
.Ft typedef int
|
|
||||||
.Fo (*ENGINE_CTRL_FUNC_PTR)
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "int cmd"
|
|
||||||
.Fa "long i"
|
|
||||||
.Fa "void *p"
|
|
||||||
.Fa "void (*f)(void)"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_ctrl_function
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "ENGINE_CTRL_FUNC_PTR ctrl_f"
|
|
||||||
.Fc
|
|
||||||
.Ft ENGINE_CTRL_FUNC_PTR
|
|
||||||
.Fo ENGINE_get_ctrl_function
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_cmd_defns
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const ENGINE_CMD_DEFN *defns"
|
|
||||||
.Fc
|
|
||||||
.Ft const ENGINE_CMD_DEFN *
|
|
||||||
.Fo ENGINE_get_cmd_defns
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
.Fn ENGINE_ctrl
|
|
||||||
calls the built-in or user-defined
|
|
||||||
.Fa cmd
|
|
||||||
for the engine
|
|
||||||
.Fa e ,
|
|
||||||
passing the arguments
|
|
||||||
.Fa i
|
|
||||||
and
|
|
||||||
.Fa p .
|
|
||||||
.Pp
|
|
||||||
User-defined commands can be used before
|
|
||||||
.Xr ENGINE_init 3
|
|
||||||
to provide data required for initialization
|
|
||||||
or at any time to modify the behaviour of an engine.
|
|
||||||
.Pp
|
|
||||||
Most built-in commands operate on user-defined commands installed with
|
|
||||||
.Fn ENGINE_set_cmd_defns ,
|
|
||||||
either using the
|
|
||||||
.Fa p
|
|
||||||
argument to indicate the user-defined command with the command name
|
|
||||||
.Fa cmd_name
|
|
||||||
or using the
|
|
||||||
.Fa i
|
|
||||||
argument to indicate the user-defined command with the command number
|
|
||||||
.Fa cmd_num .
|
|
||||||
The
|
|
||||||
.Fa cmd
|
|
||||||
arguments to call the built-in commands are as follows:
|
|
||||||
.Bl -tag -width Ds
|
|
||||||
.It Dv ENGINE_CTRL_GET_CMD_FLAGS
|
|
||||||
Return the
|
|
||||||
.Fa cmd_flags
|
|
||||||
of the user-defined command with the number
|
|
||||||
.Fa i ,
|
|
||||||
or a number less than or equal to 0 if an error occurs or
|
|
||||||
the command number does not exist.
|
|
||||||
A return value of 0 indicates failure if
|
|
||||||
.Fa e
|
|
||||||
is
|
|
||||||
.Dv NULL
|
|
||||||
or has a reference count of 0, or success if
|
|
||||||
.Fa e
|
|
||||||
is valid.
|
|
||||||
.It Dv ENGINE_CTRL_GET_CMD_FROM_NAME
|
|
||||||
Return the positive command number
|
|
||||||
of the user-defined command with the name
|
|
||||||
.Fa p ,
|
|
||||||
or a number less than or equal to 0 if an error occurs or no
|
|
||||||
matching name is found.
|
|
||||||
.It Dv ENGINE_CTRL_GET_DESC_FROM_CMD
|
|
||||||
Copy the description of the user-defined command with the number
|
|
||||||
.Fa i
|
|
||||||
into the buffer
|
|
||||||
.Fa p
|
|
||||||
and NUL-terminate it.
|
|
||||||
It is the responsibility of the caller to make sure that the buffer
|
|
||||||
.Fa p
|
|
||||||
is large enough, either by calling
|
|
||||||
.Dv ENGINE_CTRL_GET_DESC_LEN_FROM_CMD
|
|
||||||
first or using knowledge about the array passed to
|
|
||||||
.Fn ENGINE_set_cmd_defns .
|
|
||||||
The return value is the number of bytes written
|
|
||||||
.Em including
|
|
||||||
the terminating NUL byte, or a number less than or equal to 0
|
|
||||||
if an error occurs.
|
|
||||||
.It Dv ENGINE_CTRL_GET_DESC_LEN_FROM_CMD
|
|
||||||
Return the length in bytes
|
|
||||||
.Em excluding
|
|
||||||
the terminating NUL byte
|
|
||||||
of the description of the user-defined command with the number
|
|
||||||
.Fa i ,
|
|
||||||
or a number less than or equal to 0 if an error occurs.
|
|
||||||
A return value of 0 indicates failure if
|
|
||||||
.Fa e
|
|
||||||
is
|
|
||||||
.Dv NULL
|
|
||||||
or has a reference count of 0, or success if
|
|
||||||
.Fa e
|
|
||||||
is valid.
|
|
||||||
.It Dv ENGINE_CTRL_GET_FIRST_CMD_TYPE
|
|
||||||
Return the positive command number
|
|
||||||
of the first user-defined command installed with
|
|
||||||
.Fn ENGINE_set_cmd_defns
|
|
||||||
or a number less than or equal to 0 if an error occurs or no
|
|
||||||
user-defined command has been installed.
|
|
||||||
.It Dv ENGINE_CTRL_GET_NAME_FROM_CMD
|
|
||||||
Copy the name of the user-defined command with the number
|
|
||||||
.Fa i
|
|
||||||
into the buffer
|
|
||||||
.Fa p
|
|
||||||
and NUL-terminate it.
|
|
||||||
It is the responsibility of the caller to make sure that the buffer
|
|
||||||
.Fa p
|
|
||||||
is large enough, either by calling
|
|
||||||
.Dv ENGINE_CTRL_GET_NAME_LEN_FROM_CMD
|
|
||||||
first or using knowledge about the array passed to
|
|
||||||
.Fn ENGINE_set_cmd_defns .
|
|
||||||
The return value is the number of bytes written
|
|
||||||
.Em including
|
|
||||||
the terminating NUL byte, or a number less than or equal to 0
|
|
||||||
if an error occurs.
|
|
||||||
.It Dv ENGINE_CTRL_GET_NAME_LEN_FROM_CMD
|
|
||||||
Return the length in bytes
|
|
||||||
.Em excluding
|
|
||||||
the terminating NULL byte
|
|
||||||
of the name of the user-defined command with the number
|
|
||||||
.Fa i ,
|
|
||||||
or a number less than or equal to 0 if an error occurs.
|
|
||||||
A return value of 0 indicates failure if
|
|
||||||
.Fa e
|
|
||||||
is
|
|
||||||
.Dv NULL
|
|
||||||
or has a reference count of 0, or success if
|
|
||||||
.Fa e
|
|
||||||
is valid.
|
|
||||||
.It Dv ENGINE_CTRL_GET_NEXT_CMD_TYPE
|
|
||||||
Return the positive command number of the next user-defined command
|
|
||||||
after the user-defined command with the number
|
|
||||||
.Fa i ,
|
|
||||||
or a number less than or equal to 0 if an error occurs or if
|
|
||||||
.Fa i
|
|
||||||
is the last user-defined command.
|
|
||||||
Together with
|
|
||||||
.Dv ENGINE_CTRL_GET_FIRST_CMD_TYPE ,
|
|
||||||
this can be used to iterate the user-defined commands installed with
|
|
||||||
.Fn ENGINE_set_cmd_defns .
|
|
||||||
.It Dv ENGINE_CTRL_HAS_CTRL_FUNCTION
|
|
||||||
Return 1 if
|
|
||||||
.Fa e
|
|
||||||
has its own
|
|
||||||
.Fa ctrl_f
|
|
||||||
installed with
|
|
||||||
.Fn ENGINE_set_ctrl_function
|
|
||||||
or 0 otherwise.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_ctrl_cmd
|
|
||||||
translates the
|
|
||||||
.Fa cmd_name
|
|
||||||
of a user-defined command to a
|
|
||||||
.Fa cmd
|
|
||||||
number and calls
|
|
||||||
.Fn ENGINE_ctrl
|
|
||||||
on it.
|
|
||||||
If
|
|
||||||
.Fa cmd_optional
|
|
||||||
is non-zero, lack of a
|
|
||||||
.Fa ctrl_f
|
|
||||||
in
|
|
||||||
.Fa e
|
|
||||||
and translation failure with
|
|
||||||
.Dv ENGINE_CTRL_GET_CMD_FROM_NAME
|
|
||||||
are considered success, and the command has no effect.
|
|
||||||
Otherwise, these problems cause
|
|
||||||
.Fn ENGINE_ctrl_cmd
|
|
||||||
to fail.
|
|
||||||
.Pp
|
|
||||||
Neither
|
|
||||||
.Fn ENGINE_ctrl
|
|
||||||
nor
|
|
||||||
.Fn ENGINE_ctrl_cmd
|
|
||||||
ever call the
|
|
||||||
.Fa f
|
|
||||||
callback, but merely pass it on as an argument to the engine-specific
|
|
||||||
.Fa ctrl_f
|
|
||||||
control function.
|
|
||||||
It is up to
|
|
||||||
.Fa ctrl_f
|
|
||||||
how to use it, or alternatively to ignore it as well.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_ctrl_cmd_string
|
|
||||||
translates the
|
|
||||||
.Fa cmd_name
|
|
||||||
of a user-defined command to a
|
|
||||||
.Fa cmd
|
|
||||||
number.
|
|
||||||
If that command has the
|
|
||||||
.Dv ENGINE_CMD_FLAG_NO_INPUT
|
|
||||||
flag set,
|
|
||||||
.Fa arg
|
|
||||||
must be
|
|
||||||
.Dv NULL
|
|
||||||
and
|
|
||||||
.Fn ENGINE_ctrl
|
|
||||||
is called with
|
|
||||||
.Fa i
|
|
||||||
set to 0 and
|
|
||||||
.Fa p
|
|
||||||
set to
|
|
||||||
.Dv NULL .
|
|
||||||
Otherwise,
|
|
||||||
.Fa arg
|
|
||||||
must not be
|
|
||||||
.Dv NULL .
|
|
||||||
If the command accepts string input,
|
|
||||||
.Fa i
|
|
||||||
is set to 0 and
|
|
||||||
.Fa arg
|
|
||||||
is passed as the
|
|
||||||
.Fa p
|
|
||||||
argument to
|
|
||||||
.Fn ENGINE_ctrl .
|
|
||||||
Otherwise,
|
|
||||||
.Fa arg
|
|
||||||
is converted with
|
|
||||||
.Xr strtol 3
|
|
||||||
and passed as the
|
|
||||||
.Fa i
|
|
||||||
argument to
|
|
||||||
.Fn ENGINE_ctrl ,
|
|
||||||
setting
|
|
||||||
.Fa p
|
|
||||||
to
|
|
||||||
.Dv NULL .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_ctrl_function
|
|
||||||
installs
|
|
||||||
.Fa ctrl_f
|
|
||||||
as the engine-specific control function for
|
|
||||||
.Fa e .
|
|
||||||
Future calls to
|
|
||||||
.Fn ENGINE_ctrl
|
|
||||||
will call that function, passing on their arguments unchanged, if the
|
|
||||||
.Fa cmd
|
|
||||||
is not built-in to the library or if the
|
|
||||||
.Dv ENGINE_FLAGS_MANUAL_CMD_CTRL
|
|
||||||
flag is set in
|
|
||||||
.Fa e .
|
|
||||||
Let the
|
|
||||||
.Fa ctrl_f
|
|
||||||
return positive values on success or negative values on failure.
|
|
||||||
Avoid return values of 0 because they cause dangerous ambiguity.
|
|
||||||
In particular,
|
|
||||||
.Fn ENGINE_ctrl_cmd
|
|
||||||
and
|
|
||||||
.Fn ENGINE_ctrl_cmd_string
|
|
||||||
cannot be used with user-defined commands
|
|
||||||
that may return 0 on success.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_cmd_defns
|
|
||||||
install an array of command definitions in
|
|
||||||
.Fa e .
|
|
||||||
.Pp
|
|
||||||
The structure
|
|
||||||
.Vt ENGINE_CMD_DEFN
|
|
||||||
has the following fields:
|
|
||||||
.Bl -tag -width Ds
|
|
||||||
.It Fa "unsigned int cmd_num"
|
|
||||||
A positive, unique, monotonically increasing command number.
|
|
||||||
Avoid using numbers below
|
|
||||||
.Dv ENGINE_CMD_BASE .
|
|
||||||
.It Fa "const char *cmd_name"
|
|
||||||
The unique name of the command.
|
|
||||||
.It Fa "const char *cmd_desc"
|
|
||||||
A short description of the command.
|
|
||||||
.It Fa "unsigned int cmd_flags"
|
|
||||||
The bitwise OR of zero or more of the following flags:
|
|
||||||
.Bl -tag -width Ds
|
|
||||||
.It Dv ENGINE_CMD_FLAG_NUMERIC
|
|
||||||
The command uses
|
|
||||||
.Fa i .
|
|
||||||
.It Dv ENGINE_CMD_FLAG_STRING
|
|
||||||
The command uses
|
|
||||||
.Fa p .
|
|
||||||
.It Dv ENGINE_CMD_FLAG_NO_INPUT
|
|
||||||
The command neither uses
|
|
||||||
.Fa i
|
|
||||||
nor
|
|
||||||
.Fa p .
|
|
||||||
.It Dv ENGINE_CMD_FLAG_INTERNAL
|
|
||||||
This flag has no effect and is only provided for compatibility.
|
|
||||||
.El
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
The last element of
|
|
||||||
.Fa defns
|
|
||||||
does not specify a command, but must have a
|
|
||||||
.Fa cmd_num
|
|
||||||
of 0 and a
|
|
||||||
.Fa cmd_name
|
|
||||||
of
|
|
||||||
.Dv NULL
|
|
||||||
to indicate the end of the array.
|
|
||||||
.Sh RETURN VALUES
|
|
||||||
For
|
|
||||||
.Fn ENGINE_ctrl ,
|
|
||||||
positive return values indicate success and negative return values
|
|
||||||
indicate failure.
|
|
||||||
The meaning of a zero return value depends on the particular
|
|
||||||
.Fa cmd
|
|
||||||
and may indicate both success and failure, which is pathetic.
|
|
||||||
.Pp
|
|
||||||
Regardless of the
|
|
||||||
.Fa cmd ,
|
|
||||||
.Fn ENGINE_ctrl
|
|
||||||
returns 0 if
|
|
||||||
.Fa e
|
|
||||||
is
|
|
||||||
.Dv NULL
|
|
||||||
or has a reference count of 0.
|
|
||||||
This is quite unfortunate for commands like
|
|
||||||
.Dv ENGINE_CTRL_GET_CMD_FLAGS
|
|
||||||
where 0 may indicate success, so make sure
|
|
||||||
.Fa e
|
|
||||||
is valid before issuing a control command.
|
|
||||||
.Pp
|
|
||||||
For built-in commands except
|
|
||||||
.Dv ENGINE_CTRL_HAS_CTRL_FUNCTION ,
|
|
||||||
.Fn ENGINE_ctrl
|
|
||||||
returns \-1 if
|
|
||||||
.Dv ENGINE_FLAGS_MANUAL_CMD_CTRL
|
|
||||||
is set but no
|
|
||||||
.Fa ctrl_f
|
|
||||||
has been installed with
|
|
||||||
.Fn ENGINE_set_ctrl_function .
|
|
||||||
.Pp
|
|
||||||
For commands that are not built in,
|
|
||||||
.Fn ENGINE_ctrl
|
|
||||||
returns 0 if no
|
|
||||||
.Fa ctrl_f
|
|
||||||
has been installed with
|
|
||||||
.Fn ENGINE_set_ctrl_function .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_cmd_is_executable
|
|
||||||
returns 1 if the user-defined
|
|
||||||
.Fa cmd
|
|
||||||
is executable and has at least one of the flags
|
|
||||||
.Dv ENGINE_CMD_FLAG_NUMERIC ,
|
|
||||||
.Dv ENGINE_CMD_FLAG_STRING ,
|
|
||||||
and
|
|
||||||
.Dv ENGINE_CMD_FLAG_NO_INPUT
|
|
||||||
set, or 0 otherwise.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_ctrl_cmd
|
|
||||||
and
|
|
||||||
.Fn ENGINE_ctrl_cmd_string
|
|
||||||
return 1 on success or 0 on error.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_ctrl_function
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_cmd_defns
|
|
||||||
always return 1.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_ctrl_function
|
|
||||||
returns a pointer to the function
|
|
||||||
.Fa ctrl_f
|
|
||||||
installed with
|
|
||||||
.Fn ENGINE_set_ctrl_function ,
|
|
||||||
or
|
|
||||||
.Dv NULL
|
|
||||||
if none has been installed.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_cmd_defns
|
|
||||||
returns the array of command definitions installed in
|
|
||||||
.Fa e
|
|
||||||
or
|
|
||||||
.Dv NULL
|
|
||||||
if none is installed.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_add 3 ,
|
|
||||||
.Xr ENGINE_init 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_flags 3 ,
|
|
||||||
.Xr ENGINE_set_RSA 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_ctrl ,
|
|
||||||
.Fn ENGINE_set_ctrl_function ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_ctrl_function
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 2.9 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_cmd_is_executable ,
|
|
||||||
.Fn ENGINE_ctrl_cmd ,
|
|
||||||
.Fn ENGINE_ctrl_cmd_string ,
|
|
||||||
.Fn ENGINE_set_cmd_defns ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_cmd_defns
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 3.2 .
|
|
|
@ -1,151 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_get_default_RSA.3,v 1.4 2023/07/21 04:35:36 tb Exp $
|
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: July 21 2023 $
|
|
||||||
.Dt ENGINE_GET_DEFAULT_RSA 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_get_default_RSA ,
|
|
||||||
.Nm ENGINE_get_default_DSA ,
|
|
||||||
.Nm ENGINE_get_default_EC ,
|
|
||||||
.Nm ENGINE_get_default_DH ,
|
|
||||||
.Nm ENGINE_get_default_RAND ,
|
|
||||||
.Nm ENGINE_get_cipher_engine ,
|
|
||||||
.Nm ENGINE_get_digest_engine ,
|
|
||||||
.Nm ENGINE_set_table_flags ,
|
|
||||||
.Nm ENGINE_get_table_flags
|
|
||||||
.Nd retrieve the default ENGINE for an algorithm
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fn ENGINE_get_default_RSA void
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fn ENGINE_get_default_DSA void
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fn ENGINE_get_default_EC void
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fn ENGINE_get_default_DH void
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fn ENGINE_get_default_RAND void
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fo ENGINE_get_cipher_engine
|
|
||||||
.Fa "int nid"
|
|
||||||
.Fc
|
|
||||||
.Ft ENGINE *
|
|
||||||
.Fo ENGINE_get_digest_engine
|
|
||||||
.Fa "int nid"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_set_table_flags
|
|
||||||
.Fa "unsigned int flags"
|
|
||||||
.Fc
|
|
||||||
.Ft unsigned int
|
|
||||||
.Fn ENGINE_get_table_flags void
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
These functions retrieve the current default
|
|
||||||
.Vt ENGINE
|
|
||||||
implementing the respective algorithm.
|
|
||||||
.Pp
|
|
||||||
If a default engine was previously selected,
|
|
||||||
.Xr ENGINE_init 3
|
|
||||||
is called on it again and it is used.
|
|
||||||
Otherwise, these functions inspect the engines registered
|
|
||||||
with the functions documented in
|
|
||||||
.Xr ENGINE_register_RSA 3
|
|
||||||
in the order of the table for the respective algorithm.
|
|
||||||
If an inspected engine is already successfully initialized,
|
|
||||||
.Xr ENGINE_init 3
|
|
||||||
is called on it again and it is used as the new default.
|
|
||||||
Otherwise, unless the global flag
|
|
||||||
.Dv ENGINE_TABLE_FLAG_NOINIT
|
|
||||||
is set,
|
|
||||||
.Xr ENGINE_init 3
|
|
||||||
is tried on it.
|
|
||||||
If it succeeds, that engine is used as the new default.
|
|
||||||
If it fails or if
|
|
||||||
.Dv ENGINE_TABLE_FLAG_NOINIT
|
|
||||||
is set, inspection continues with the next engine.
|
|
||||||
.Pp
|
|
||||||
The global flag can be set by calling
|
|
||||||
.Fn ENGINE_set_table_flags
|
|
||||||
with an argument of
|
|
||||||
.Dv ENGINE_TABLE_FLAG_NOINIT
|
|
||||||
or cleared by calling it with an argument of 0.
|
|
||||||
By default, the flag is not set.
|
|
||||||
.Pp
|
|
||||||
While all the other functions operate on exactly one algorithm,
|
|
||||||
.Fn ENGINE_get_cipher_engine
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_digest_engine
|
|
||||||
are special in so far as they can handle multiple algorithms,
|
|
||||||
identified by the given
|
|
||||||
.Fa nid .
|
|
||||||
The default engine is remembered separately for each algorithm.
|
|
||||||
.Pp
|
|
||||||
Application programs rarely need to call these functions because
|
|
||||||
they are called automatically when needed, in particular from
|
|
||||||
.Xr RSA_new 3 ,
|
|
||||||
.Xr DSA_new 3 ,
|
|
||||||
.Xr EC_KEY_new 3 ,
|
|
||||||
.Xr DH_new 3 ,
|
|
||||||
.Xr EVP_CipherInit_ex 3 ,
|
|
||||||
and
|
|
||||||
.Xr EVP_DigestInit_ex 3 .
|
|
||||||
.Sh RETURN VALUES
|
|
||||||
These functions return a functional reference to an
|
|
||||||
.Vt ENGINE
|
|
||||||
object or
|
|
||||||
.Dv NULL
|
|
||||||
on failure, in particular when no engine implementing the algorithm
|
|
||||||
is available, when
|
|
||||||
.Xr ENGINE_init 3
|
|
||||||
fails for all implementations,
|
|
||||||
or when insufficient memory is available.
|
|
||||||
Even when these functions fail, the application may still be able
|
|
||||||
to use the algorithm in question because the built-in implementation
|
|
||||||
is used in that case, if one is available.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_table_flags
|
|
||||||
returns
|
|
||||||
.Dv ENGINE_TABLE_FLAG_NOINIT
|
|
||||||
if the global flag is set or 0 otherwise.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_init 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_default 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_get_default_RSA ,
|
|
||||||
.Fn ENGINE_get_default_DSA ,
|
|
||||||
.Fn ENGINE_get_default_DH ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_default_RAND
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 2.9 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_cipher_engine ,
|
|
||||||
.Fn ENGINE_get_digest_engine ,
|
|
||||||
.Fn ENGINE_set_table_flags ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_table_flags
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 3.2 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_default_EC
|
|
||||||
first appeared in OpenSSL 1.1.0 and has been available since
|
|
||||||
.Ox 6.5 .
|
|
|
@ -1,134 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_init.3,v 1.2 2018/04/18 03:39:22 schwarze Exp $
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: April 18 2018 $
|
|
||||||
.Dt ENGINE_INIT 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_init ,
|
|
||||||
.Nm ENGINE_finish ,
|
|
||||||
.Nm ENGINE_set_init_function ,
|
|
||||||
.Nm ENGINE_set_finish_function ,
|
|
||||||
.Nm ENGINE_get_init_function ,
|
|
||||||
.Nm ENGINE_get_finish_function
|
|
||||||
.Nd initialize ENGINE objects
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_init
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_finish
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft typedef int
|
|
||||||
.Fo (*ENGINE_GEN_INT_FUNC_PTR)
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_init_function
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "ENGINE_GEN_INT_FUNC_PTR init_f"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_finish_function
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "ENGINE_GEN_INT_FUNC_PTR finish_f"
|
|
||||||
.Fc
|
|
||||||
.Ft ENGINE_GEN_INT_FUNC_PTR
|
|
||||||
.Fo ENGINE_get_init_function
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft ENGINE_GEN_INT_FUNC_PTR
|
|
||||||
.Fo ENGINE_get_finish_function
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
.Fn ENGINE_init
|
|
||||||
initializes
|
|
||||||
.Fa e
|
|
||||||
by calling the
|
|
||||||
.Fa init_f
|
|
||||||
previously installed with
|
|
||||||
.Fn ENGINE_set_init_function ,
|
|
||||||
if any.
|
|
||||||
In case of success, it also increments both the structural
|
|
||||||
and the functional reference count by 1.
|
|
||||||
If no
|
|
||||||
.Fa init_f
|
|
||||||
was installed,
|
|
||||||
.Fn ENGINE_init
|
|
||||||
always succeeds.
|
|
||||||
Calling
|
|
||||||
.Fn ENGINE_init
|
|
||||||
again after it already succeeded always succeeds, but has no effect
|
|
||||||
except that it increments both the structural and the functional
|
|
||||||
reference count by 1.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_finish
|
|
||||||
decrements the functional reference count by 1.
|
|
||||||
When it reaches 0, it calls the
|
|
||||||
.Fa finish_f
|
|
||||||
previously installed with
|
|
||||||
.Fn ENGINE_set_finish_function ,
|
|
||||||
if any.
|
|
||||||
If no
|
|
||||||
.Fa finish_f
|
|
||||||
was installed,
|
|
||||||
.Fn ENGINE_finish
|
|
||||||
always succeeds.
|
|
||||||
Unless
|
|
||||||
.Fa finish_f
|
|
||||||
fails,
|
|
||||||
.Fn ENGINE_finish
|
|
||||||
also calls
|
|
||||||
.Xr ENGINE_free 3 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_init
|
|
||||||
is internally called by the functions documented in the
|
|
||||||
.Xr ENGINE_get_default_RSA 3
|
|
||||||
manual page.
|
|
||||||
.Sh RETURN VALUES
|
|
||||||
.Fn ENGINE_init
|
|
||||||
and
|
|
||||||
.Fn ENGINE_finish
|
|
||||||
return 1 on success or 0 on error.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_init_function
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_finish_function
|
|
||||||
always return 1.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_init_function
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_finish_function
|
|
||||||
return a function pointer to the respective callback, or
|
|
||||||
.Dv NULL
|
|
||||||
if none is installed.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_add 3 ,
|
|
||||||
.Xr ENGINE_ctrl 3 ,
|
|
||||||
.Xr ENGINE_get_default_RSA 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_default 3 ,
|
|
||||||
.Xr ENGINE_set_flags 3 ,
|
|
||||||
.Xr ENGINE_set_RSA 3 ,
|
|
||||||
.Xr ENGINE_unregister_RSA 3
|
|
||||||
.Sh HISTORY
|
|
||||||
These functions first appeared in OpenSSL 0.9.7
|
|
||||||
and have been available since
|
|
||||||
.Ox 2.9 .
|
|
|
@ -1,7 +1,6 @@
|
||||||
.\" $OpenBSD: ENGINE_new.3,v 1.5 2021/03/12 05:18:00 jsg Exp $
|
.\" $OpenBSD: ENGINE_new.3,v 1.10 2023/11/19 21:13:47 tb Exp $
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
.\"
|
||||||
|
.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
||||||
.\"
|
.\"
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
.\" Permission to use, copy, modify, and distribute this software for any
|
||||||
|
@ -16,175 +15,160 @@
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: March 12 2021 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt ENGINE_NEW 3
|
.Dt ENGINE_NEW 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm ENGINE_new ,
|
.Nm ENGINE_new ,
|
||||||
.Nm ENGINE_up_ref ,
|
|
||||||
.Nm ENGINE_free ,
|
.Nm ENGINE_free ,
|
||||||
.Nm ENGINE_set_destroy_function ,
|
.Nm ENGINE_init ,
|
||||||
.Nm ENGINE_get_destroy_function
|
.Nm ENGINE_finish ,
|
||||||
.Nd create and destroy ENGINE objects
|
.Nm ENGINE_ctrl_cmd ,
|
||||||
|
.Nm ENGINE_ctrl_cmd_string ,
|
||||||
|
.Nm ENGINE_by_id ,
|
||||||
|
.Nm ENGINE_get_id ,
|
||||||
|
.Nm ENGINE_get_name ,
|
||||||
|
.Nm ENGINE_set_default ,
|
||||||
|
.Nm ENGINE_get_default_RSA ,
|
||||||
|
.Nm ENGINE_set_default_RSA ,
|
||||||
|
.Nm ENGINE_load_private_key ,
|
||||||
|
.Nm ENGINE_load_public_key ,
|
||||||
|
.Nm ENGINE_load_builtin_engines ,
|
||||||
|
.Nm ENGINE_load_dynamic ,
|
||||||
|
.Nm ENGINE_load_openssl ,
|
||||||
|
.Nm ENGINE_register_all_complete ,
|
||||||
|
.Nm ENGINE_cleanup
|
||||||
|
.Nd ENGINE stub functions
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.In openssl/engine.h
|
.In openssl/engine.h
|
||||||
.Ft ENGINE *
|
.Ft ENGINE *
|
||||||
.Fn ENGINE_new void
|
.Fn ENGINE_new void
|
||||||
.Ft int
|
.Ft int
|
||||||
.Fo ENGINE_up_ref
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_free
|
.Fo ENGINE_free
|
||||||
.Fa "ENGINE *e"
|
.Fa "ENGINE *engine"
|
||||||
.Fc
|
|
||||||
.Ft typedef int
|
|
||||||
.Fo (*ENGINE_GEN_INT_FUNC_PTR)
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
.Fc
|
||||||
.Ft int
|
.Ft int
|
||||||
.Fo ENGINE_set_destroy_function
|
.Fn ENGINE_init "ENGINE *engine"
|
||||||
.Fa "ENGINE *e"
|
.Ft int
|
||||||
.Fa "ENGINE_GEN_INT_FUNC_PTR destroy_f"
|
.Fn ENGINE_finish "ENGINE *engine"
|
||||||
|
.Ft int
|
||||||
|
.Fo ENGINE_ctrl_cmd
|
||||||
|
.Fa "ENGINE *engine"
|
||||||
|
.Fa "const char *cmd_name"
|
||||||
|
.Fa "long i"
|
||||||
|
.Fa "void *p"
|
||||||
|
.Fa "void (*f)(void)"
|
||||||
|
.Fa "int cmd_optional"
|
||||||
.Fc
|
.Fc
|
||||||
.Ft ENGINE_GEN_INT_FUNC_PTR
|
.Ft int
|
||||||
.Fo ENGINE_get_destroy_function
|
.Fo ENGINE_ctrl_cmd_string
|
||||||
.Fa "const ENGINE *e"
|
.Fa "ENGINE *engine"
|
||||||
|
.Fa "const char *cmd_name"
|
||||||
|
.Fa "const char *arg"
|
||||||
|
.Fa "int cmd_optional"
|
||||||
.Fc
|
.Fc
|
||||||
|
.Ft ENGINE *
|
||||||
|
.Fn ENGINE_by_id "const char *id"
|
||||||
|
.Ft const char *
|
||||||
|
.Fn ENGINE_get_id "const ENGINE *engine"
|
||||||
|
.Ft const char *
|
||||||
|
.Fn ENGINE_get_name "const ENGINE *engine"
|
||||||
|
.Ft int
|
||||||
|
.Fn ENGINE_set_default "ENGINE *engine" "unsigned int flags"
|
||||||
|
.Ft ENGINE *
|
||||||
|
.Fn ENGINE_get_default_RSA "ENGINE *engine"
|
||||||
|
.Ft int
|
||||||
|
.Fn ENGINE_set_default_RSA "ENGINE *engine"
|
||||||
|
.Ft EVP_PKEY *
|
||||||
|
.Fo ENGINE_load_private_key
|
||||||
|
.Fa "ENGINE *engine"
|
||||||
|
.Fa "const char *key_id"
|
||||||
|
.Fa "UI_METHOD *ui_method"
|
||||||
|
.Fa "void *callback_data"
|
||||||
|
.Fc
|
||||||
|
.Ft EVP_PKEY *
|
||||||
|
.Fo ENGINE_load_public_key
|
||||||
|
.Fa "ENGINE *engine"
|
||||||
|
.Fa "const char *key_id"
|
||||||
|
.Fa "UI_METHOD *ui_method"
|
||||||
|
.Fa "void *callback_data"
|
||||||
|
.Fc
|
||||||
|
.Ft void
|
||||||
|
.Fn ENGINE_load_builtin_engines "void"
|
||||||
|
.Ft void
|
||||||
|
.Fn ENGINE_load_dynamic "void"
|
||||||
|
.Ft void
|
||||||
|
.Fn ENGINE_load_openssl "void"
|
||||||
|
.Ft int
|
||||||
|
.Fn ENGINE_register_all_complete "void"
|
||||||
|
.Ft void
|
||||||
|
.Fn ENGINE_cleanup "void"
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
.Vt ENGINE
|
.Vt ENGINE
|
||||||
objects can be used to provide alternative implementations of
|
objects used to provide alternative implementations of
|
||||||
cryptographic algorithms, to support additional algorithms, to
|
cryptographic algorithms, for example using specialized hardware.
|
||||||
support cryptographic hardware, and to switch among alternative
|
LibreSSL no longer supports this feature.
|
||||||
implementations of algorithms at run time.
|
|
||||||
LibreSSL generally avoids engines and prefers providing
|
|
||||||
cryptographic functionality in the crypto library itself.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn ENGINE_new
|
All functions in this manual ignore all their arguments and
|
||||||
allocates and initializes an empty
|
do nothing except return failure if possible.
|
||||||
|
They are provided only to avoid patching software that expects
|
||||||
.Vt ENGINE
|
.Vt ENGINE
|
||||||
object and sets its structural reference count to 1
|
support to be available.
|
||||||
and its functional reference count to 0.
|
|
||||||
For more information about the functional reference count, see the
|
|
||||||
.Xr ENGINE_init 3
|
|
||||||
manual page.
|
|
||||||
.Pp
|
|
||||||
Many functions increment the structural reference count by 1
|
|
||||||
when successful.
|
|
||||||
Some of them, including
|
|
||||||
.Xr ENGINE_get_first 3 ,
|
|
||||||
.Xr ENGINE_get_last 3 ,
|
|
||||||
.Xr ENGINE_get_next 3 ,
|
|
||||||
.Xr ENGINE_get_prev 3 ,
|
|
||||||
and
|
|
||||||
.Xr ENGINE_by_id 3 ,
|
|
||||||
do so because they return a structural reference to the user.
|
|
||||||
Other functions, including
|
|
||||||
.Xr ENGINE_add 3 ,
|
|
||||||
.Xr ENGINE_init 3 ,
|
|
||||||
.Xr ENGINE_get_cipher_engine 3 ,
|
|
||||||
.Xr ENGINE_get_digest_engine 3 ,
|
|
||||||
and the
|
|
||||||
.Xr ENGINE_get_default_RSA 3
|
|
||||||
and
|
|
||||||
.Xr ENGINE_set_default 3
|
|
||||||
families of functions
|
|
||||||
do so when they store a structural reference internally.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_up_ref
|
|
||||||
explicitly increment the structural reference count by 1.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_free
|
|
||||||
decrements the structural reference count by 1,
|
|
||||||
and if it reaches 0, the optional
|
|
||||||
.Fa destroy_f
|
|
||||||
previously installed with
|
|
||||||
.Fn ENGINE_set_destroy_function
|
|
||||||
is called, if one is installed, and both the memory used internally by
|
|
||||||
.Fa e
|
|
||||||
and
|
|
||||||
.Fa e
|
|
||||||
itself are freed.
|
|
||||||
If
|
|
||||||
.Fa e
|
|
||||||
is a
|
|
||||||
.Dv NULL
|
|
||||||
pointer, no action occurs.
|
|
||||||
.Pp
|
|
||||||
Many functions internally call the equivalent of
|
|
||||||
.Fn ENGINE_free .
|
|
||||||
Some of them, including
|
|
||||||
.Xr ENGINE_get_next 3
|
|
||||||
and
|
|
||||||
.Xr ENGINE_get_prev 3 ,
|
|
||||||
thus invalidate the structural reference passed in by the user.
|
|
||||||
Other functions, including
|
|
||||||
.Xr ENGINE_finish 3 ,
|
|
||||||
.Xr ENGINE_remove 3 ,
|
|
||||||
and the
|
|
||||||
.Xr ENGINE_set_default 3
|
|
||||||
family of functions
|
|
||||||
do so when an internally stored structural reference is no longer needed.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_destroy_function
|
|
||||||
installs a callback function that will be called by
|
|
||||||
.Fn ENGINE_free ,
|
|
||||||
but only when
|
|
||||||
.Fa e
|
|
||||||
actually gets destroyed,
|
|
||||||
not when only its reference count gets decremented.
|
|
||||||
The value returned from the
|
|
||||||
.Fa destroy_f
|
|
||||||
will be ignored.
|
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn ENGINE_new
|
.Fn ENGINE_new ,
|
||||||
returns a structural reference to the new
|
.Fn ENGINE_by_id ,
|
||||||
.Vt ENGINE
|
.Fn ENGINE_get_default_RSA ,
|
||||||
object or
|
.Fn ENGINE_load_private_key ,
|
||||||
.Dv NULL
|
|
||||||
if an error occurs.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_up_ref
|
|
||||||
returns 0 if
|
|
||||||
.Fa e
|
|
||||||
is
|
|
||||||
.Dv NULL
|
|
||||||
and 1 otherwise.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_free
|
|
||||||
and
|
and
|
||||||
.Fn ENGINE_set_destroy_function
|
.Fn ENGINE_load_public_key
|
||||||
always return 1.
|
always return
|
||||||
|
.Dv NULL .
|
||||||
.Pp
|
.Pp
|
||||||
.Fn ENGINE_get_destroy_function
|
.Fn ENGINE_free ,
|
||||||
returns a function pointer to the callback, or
|
.Fn ENGINE_init ,
|
||||||
.Dv NULL
|
.Fn ENGINE_finish ,
|
||||||
if none is installed.
|
.Fn ENGINE_ctrl_cmd ,
|
||||||
|
.Fn ENGINE_ctrl_cmd_string ,
|
||||||
|
.Fn ENGINE_set_default ,
|
||||||
|
.Fn ENGINE_set_default_RSA ,
|
||||||
|
and
|
||||||
|
.Fn ENGINE_register_all_complete
|
||||||
|
always return 0.
|
||||||
|
.Pp
|
||||||
|
.Fn ENGINE_get_id
|
||||||
|
and
|
||||||
|
.Fn ENGINE_get_name
|
||||||
|
always return the constant empty string.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr crypto 3 ,
|
.Xr crypto 3
|
||||||
.Xr ENGINE_add 3 ,
|
|
||||||
.Xr ENGINE_ctrl 3 ,
|
|
||||||
.Xr ENGINE_get_default_RSA 3 ,
|
|
||||||
.Xr ENGINE_init 3 ,
|
|
||||||
.Xr ENGINE_register_all_RSA 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_default 3 ,
|
|
||||||
.Xr ENGINE_set_flags 3 ,
|
|
||||||
.Xr ENGINE_set_RSA 3 ,
|
|
||||||
.Xr ENGINE_unregister_RSA 3
|
|
||||||
.Sh HISTORY
|
.Sh HISTORY
|
||||||
.Fn ENGINE_new
|
.Fn ENGINE_new ,
|
||||||
|
.Fn ENGINE_free ,
|
||||||
|
.Fn ENGINE_init ,
|
||||||
|
.Fn ENGINE_finish ,
|
||||||
|
.Fn ENGINE_by_id ,
|
||||||
|
.Fn ENGINE_get_id ,
|
||||||
|
.Fn ENGINE_get_name ,
|
||||||
|
.Fn ENGINE_set_default ,
|
||||||
|
.Fn ENGINE_get_default_RSA ,
|
||||||
|
.Fn ENGINE_set_default_RSA ,
|
||||||
|
.Fn ENGINE_load_private_key ,
|
||||||
and
|
and
|
||||||
.Fn ENGINE_free
|
.Fn ENGINE_load_public_key
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
first appeared in OpenSSL 0.9.7
|
||||||
|
and have been available since
|
||||||
.Ox 2.9 .
|
.Ox 2.9 .
|
||||||
.Pp
|
.Pp
|
||||||
.Fn ENGINE_set_destroy_function
|
.Fn ENGINE_ctrl_cmd ,
|
||||||
|
.Fn ENGINE_ctrl_cmd_string ,
|
||||||
|
.Fn ENGINE_load_builtin_engines ,
|
||||||
|
.Fn ENGINE_load_openssl ,
|
||||||
|
.Fn ENGINE_register_all_complete ,
|
||||||
and
|
and
|
||||||
.Fn ENGINE_get_destroy_function
|
.Fn ENGINE_cleanup
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
first appeared in OpenSSL 0.9.7
|
||||||
.Ox 3.2 .
|
and have been available since
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_up_ref
|
|
||||||
first appeared in OpenSSL 0.9.7 and has been available since
|
|
||||||
.Ox 3.4 .
|
.Ox 3.4 .
|
||||||
|
.Pp
|
||||||
|
All these functions were turned into stubs in
|
||||||
|
.Ox 7.4 .
|
||||||
|
|
|
@ -1,142 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_register_RSA.3,v 1.2 2018/04/18 03:39:22 schwarze Exp $
|
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: April 18 2018 $
|
|
||||||
.Dt ENGINE_REGISTER_RSA 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_register_RSA ,
|
|
||||||
.Nm ENGINE_register_DSA ,
|
|
||||||
.Nm ENGINE_register_ECDH ,
|
|
||||||
.Nm ENGINE_register_ECDSA ,
|
|
||||||
.Nm ENGINE_register_DH ,
|
|
||||||
.Nm ENGINE_register_RAND ,
|
|
||||||
.Nm ENGINE_register_STORE ,
|
|
||||||
.Nm ENGINE_register_ciphers ,
|
|
||||||
.Nm ENGINE_register_digests ,
|
|
||||||
.Nm ENGINE_register_complete
|
|
||||||
.Nd register an ENGINE as implementing an algorithm
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_RSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_DSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_ECDH
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_ECDSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_DH
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_RAND
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_STORE
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_ciphers
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_digests
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_register_complete
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
In addition to the global table described in
|
|
||||||
.Xr ENGINE_add 3 ,
|
|
||||||
the crypto library maintains several tables containing references to
|
|
||||||
.Vt ENGINE
|
|
||||||
objects implementing one specific cryptographic algorithm.
|
|
||||||
.Pp
|
|
||||||
The functions listed in the present manual page append
|
|
||||||
.Fa e
|
|
||||||
to the end of the table for the respective algorithm.
|
|
||||||
.Pp
|
|
||||||
If
|
|
||||||
.Fa e
|
|
||||||
does not contain a method for the requested algorithm,
|
|
||||||
these functions succeed without having any effect.
|
|
||||||
.Pp
|
|
||||||
If
|
|
||||||
.Fa e
|
|
||||||
is already registered for the given algorithm,
|
|
||||||
they move it to the end of the respective table.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_register_ciphers
|
|
||||||
and
|
|
||||||
.Fn ENGINE_register_digests
|
|
||||||
are special in so far as an engine may implement
|
|
||||||
more than one cipher or more than one digest.
|
|
||||||
In that case,
|
|
||||||
.Fa e
|
|
||||||
is registered for all the ciphers or digests it implements.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_register_complete
|
|
||||||
registers
|
|
||||||
.Fa e
|
|
||||||
for all algorithms it implements by calling all the other functions.
|
|
||||||
.Sh RETURN VALUES
|
|
||||||
These functions return 1 on success or 0 on error.
|
|
||||||
They only fail if insufficient memory is available.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_add 3 ,
|
|
||||||
.Xr ENGINE_get_default_RSA 3 ,
|
|
||||||
.Xr ENGINE_init 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_all_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_default 3 ,
|
|
||||||
.Xr ENGINE_set_RSA 3 ,
|
|
||||||
.Xr ENGINE_unregister_RSA 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_register_RSA ,
|
|
||||||
.Fn ENGINE_register_DSA ,
|
|
||||||
.Fn ENGINE_register_DH ,
|
|
||||||
.Fn ENGINE_register_RAND ,
|
|
||||||
.Fn ENGINE_register_ciphers ,
|
|
||||||
.Fn ENGINE_register_digests ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_register_complete
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 3.2 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_register_ECDH ,
|
|
||||||
.Fn ENGINE_register_ECDSA ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_register_STORE
|
|
||||||
first appeared in OpenSSL 0.9.8 and have been available since
|
|
||||||
.Ox 4.5 .
|
|
||||||
.Sh BUGS
|
|
||||||
.Fn ENGINE_register_complete
|
|
||||||
ignores all errors, even memory allocation failure, and always returns 1.
|
|
|
@ -1,123 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_register_all_RSA.3,v 1.3 2018/04/18 03:39:22 schwarze Exp $
|
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: April 18 2018 $
|
|
||||||
.Dt ENGINE_REGISTER_ALL_RSA 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_register_all_RSA ,
|
|
||||||
.Nm ENGINE_register_all_DSA ,
|
|
||||||
.Nm ENGINE_register_all_ECDH ,
|
|
||||||
.Nm ENGINE_register_all_ECDSA ,
|
|
||||||
.Nm ENGINE_register_all_DH ,
|
|
||||||
.Nm ENGINE_register_all_RAND ,
|
|
||||||
.Nm ENGINE_register_all_STORE ,
|
|
||||||
.Nm ENGINE_register_all_ciphers ,
|
|
||||||
.Nm ENGINE_register_all_digests ,
|
|
||||||
.Nm ENGINE_register_all_complete ,
|
|
||||||
.Nm ENGINE_load_builtin_engines ,
|
|
||||||
.Nm ENGINE_load_dynamic
|
|
||||||
.Nd register all engines as implementing an algorithm
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_RSA void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_DSA void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_ECDH void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_ECDSA void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_DH void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_RAND void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_STORE void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_ciphers void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_register_all_digests void
|
|
||||||
.Ft int
|
|
||||||
.Fn ENGINE_register_all_complete void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_load_builtin_engines void
|
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_load_dynamic void
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
These functions loop over all the
|
|
||||||
.Vt ENGINE
|
|
||||||
objects contained in the global table described in the
|
|
||||||
.Xr ENGINE_add 3
|
|
||||||
manual page.
|
|
||||||
They register each object for the respective algorithm
|
|
||||||
by calling the corresponding function described in
|
|
||||||
.Xr ENGINE_register_RSA 3 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_register_all_complete
|
|
||||||
calls
|
|
||||||
.Fn ENGINE_register_complete
|
|
||||||
in this way, except that it skips those
|
|
||||||
.Vt ENGINE
|
|
||||||
objects that have the
|
|
||||||
.Dv ENGINE_FLAGS_NO_REGISTER_ALL
|
|
||||||
flag set with
|
|
||||||
.Xr ENGINE_set_flags 3 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_load_builtin_engines
|
|
||||||
calls
|
|
||||||
.Xr OPENSSL_init_crypto 3
|
|
||||||
with no options, loads any built-in engines
|
|
||||||
that are enabled by default, and calls
|
|
||||||
.Fn ENGINE_register_all_complete .
|
|
||||||
Currently, LibreSSL does not provide any engines.
|
|
||||||
.Sy GOST
|
|
||||||
and
|
|
||||||
.Sy aesni
|
|
||||||
support is provided by the crypto library itself
|
|
||||||
and does not require any engines, not even built-in ones.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_load_dynamic
|
|
||||||
has no effect and is only provided for compatibility.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_add 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_flags 3 ,
|
|
||||||
.Xr OPENSSL_config 3 ,
|
|
||||||
.Xr OPENSSL_init_crypto 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_register_all_RSA ,
|
|
||||||
.Fn ENGINE_register_all_DSA ,
|
|
||||||
.Fn ENGINE_register_all_DH ,
|
|
||||||
.Fn ENGINE_register_all_RAND ,
|
|
||||||
.Fn ENGINE_register_all_ciphers ,
|
|
||||||
.Fn ENGINE_register_all_digests ,
|
|
||||||
.Fn ENGINE_register_all_complete ,
|
|
||||||
.Fn ENGINE_load_builtin_engines ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_load_dynamic
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 3.2 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_register_all_ECDH ,
|
|
||||||
.Fn ENGINE_register_all_ECDSA ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_register_all_STORE
|
|
||||||
first appeared in OpenSSL 0.9.8 and have been available since
|
|
||||||
.Ox 4.5 .
|
|
|
@ -1,317 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_set_RSA.3,v 1.7 2023/07/21 04:29:27 tb Exp $
|
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: July 21 2023 $
|
|
||||||
.Dt ENGINE_SET_RSA 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_set_RSA ,
|
|
||||||
.Nm ENGINE_get_RSA ,
|
|
||||||
.Nm ENGINE_set_DSA ,
|
|
||||||
.Nm ENGINE_get_DSA ,
|
|
||||||
.Nm ENGINE_set_EC ,
|
|
||||||
.Nm ENGINE_get_EC ,
|
|
||||||
.Nm ENGINE_set_DH ,
|
|
||||||
.Nm ENGINE_get_DH ,
|
|
||||||
.Nm ENGINE_set_RAND ,
|
|
||||||
.Nm ENGINE_get_RAND ,
|
|
||||||
.Nm ENGINE_set_STORE ,
|
|
||||||
.Nm ENGINE_get_STORE ,
|
|
||||||
.Nm ENGINE_set_ciphers ,
|
|
||||||
.Nm ENGINE_get_ciphers ,
|
|
||||||
.Nm ENGINE_get_cipher ,
|
|
||||||
.Nm ENGINE_set_digests ,
|
|
||||||
.Nm ENGINE_get_digests ,
|
|
||||||
.Nm ENGINE_get_digest
|
|
||||||
.Nd install and retrieve function tables of crypto engines
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_RSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const RSA_METHOD *rsa_meth"
|
|
||||||
.Fc
|
|
||||||
.Ft const RSA_METHOD *
|
|
||||||
.Fo ENGINE_get_RSA
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_DSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const DSA_METHOD *dsa_meth"
|
|
||||||
.Fc
|
|
||||||
.Ft const DSA_METHOD *
|
|
||||||
.Fo ENGINE_get_DSA
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_EC
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const EC_KEY_METHOD *ec_meth"
|
|
||||||
.Fc
|
|
||||||
.Ft const EC_KEY_METHOD *
|
|
||||||
.Fo ENGINE_get_EC
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_DH
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const DH_METHOD *dh_meth"
|
|
||||||
.Fc
|
|
||||||
.Ft const DH_METHOD *
|
|
||||||
.Fo ENGINE_get_DH
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_RAND
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const RAND_METHOD *rand_meth"
|
|
||||||
.Fc
|
|
||||||
.Ft const RAND_METHOD *
|
|
||||||
.Fo ENGINE_get_RAND
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_STORE
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const STORE_METHOD *rand_meth"
|
|
||||||
.Fc
|
|
||||||
.Ft const STORE_METHOD *
|
|
||||||
.Fo ENGINE_get_STORE
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft typedef int
|
|
||||||
.Fo (*ENGINE_CIPHERS_PTR)
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const EVP_CIPHER **impl"
|
|
||||||
.Fa "const int **nids"
|
|
||||||
.Fa "int nid"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_ciphers
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "ENGINE_CIPHERS_PTR f"
|
|
||||||
.Fc
|
|
||||||
.Ft ENGINE_CIPHERS_PTR
|
|
||||||
.Fo ENGINE_get_ciphers
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft const EVP_CIPHER *
|
|
||||||
.Fo ENGINE_get_cipher
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "int nid"
|
|
||||||
.Fc
|
|
||||||
.Ft typedef int
|
|
||||||
.Fo (*ENGINE_DIGESTS_PTR)
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const EVP_MD **impl"
|
|
||||||
.Fa "const int **nids"
|
|
||||||
.Fa "int nid"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_digests
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "ENGINE_DIGESTS_PTR f"
|
|
||||||
.Fc
|
|
||||||
.Ft ENGINE_DIGESTS_PTR
|
|
||||||
.Fo ENGINE_get_digests
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft const EVP_MD *
|
|
||||||
.Fo ENGINE_get_digest
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "int nid"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Fn ENGINE_set_*
|
|
||||||
functions install a table of function pointers
|
|
||||||
implementing the respective algorithm in
|
|
||||||
.Fa e .
|
|
||||||
Partial information about the various method objects is available from
|
|
||||||
.Xr RSA_meth_new 3 ,
|
|
||||||
.Xr RSA_get_default_method 3 ,
|
|
||||||
.Xr DSA_meth_new 3 ,
|
|
||||||
.Xr DSA_get_default_method 3 ,
|
|
||||||
.Xr EC_KEY_get_default_method 3 ,
|
|
||||||
.Xr DH_get_default_method 3 ,
|
|
||||||
.Xr RAND_get_rand_method 3 ,
|
|
||||||
.Xr EVP_get_cipherbynid 3 ,
|
|
||||||
and
|
|
||||||
.Xr EVP_get_digestbynid 3 .
|
|
||||||
.Vt STORE_METHOD
|
|
||||||
is an incomplete type, and the pointers to it are not used for anything.
|
|
||||||
For complete descriptions of these types,
|
|
||||||
refer to the respective header files.
|
|
||||||
.Pp
|
|
||||||
The functions described in the
|
|
||||||
.Xr ENGINE_register_RSA 3
|
|
||||||
and
|
|
||||||
.Xr ENGINE_set_default 3
|
|
||||||
manual pages only have an effect after function pointers
|
|
||||||
were installed using the functions described here.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_ciphers
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_digests
|
|
||||||
are special in so far as the
|
|
||||||
.Vt ENGINE
|
|
||||||
structure does not provide fields to store function pointers
|
|
||||||
implementing ciphers or digests.
|
|
||||||
Instead, these two functions only install a callback to
|
|
||||||
retrieve implementations.
|
|
||||||
Where the pointers to the implementations are stored internally,
|
|
||||||
how they get initialized, and how the
|
|
||||||
.Vt ENGINE_CIPHERS_PTR
|
|
||||||
and
|
|
||||||
.Vt ENGINE_DIGESTS_PTR
|
|
||||||
callbacks retrieve them
|
|
||||||
is up to the implementation of each individual engine.
|
|
||||||
.Pp
|
|
||||||
If the
|
|
||||||
.Vt ENGINE_CIPHERS_PTR
|
|
||||||
and
|
|
||||||
.Vt ENGINE_DIGESTS_PTR
|
|
||||||
callbacks are called with a non-zero
|
|
||||||
.Fa nid ,
|
|
||||||
they retrieve the implementation of that cipher or digest,
|
|
||||||
respectively.
|
|
||||||
In this case, a
|
|
||||||
.Dv NULL
|
|
||||||
pointer can be passed as the
|
|
||||||
.Fa nids
|
|
||||||
argument.
|
|
||||||
.Fn ENGINE_get_cipher
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_digest
|
|
||||||
call the callbacks installed in
|
|
||||||
.Fa e
|
|
||||||
in this way.
|
|
||||||
.Pp
|
|
||||||
If 0 is passed as the
|
|
||||||
.Fa nid
|
|
||||||
argument, an internal pointer
|
|
||||||
to the array of implementations available in
|
|
||||||
.Fa e
|
|
||||||
is returned in
|
|
||||||
.Pf * Fa impl ,
|
|
||||||
and an internal pointer
|
|
||||||
to the array of corresponding identifiers in
|
|
||||||
.Pf * Fa nids .
|
|
||||||
The return value of the callback indicates
|
|
||||||
the number of implementations returned.
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Fn ENGINE_get_*
|
|
||||||
functions retrieve the previously installed function tables.
|
|
||||||
They are used when constructing basic cryptographic objects
|
|
||||||
as shown in the following table:
|
|
||||||
.Bl -column "ENGINE_get_digestMM"
|
|
||||||
.It Accessor: Ta Called by:
|
|
||||||
.It Fn ENGINE_get_RSA Ta Xr RSA_new_method 3 , Xr RSA_new 3
|
|
||||||
.It Fn ENGINE_get_DSA Ta Xr DSA_new_method 3 , Xr DSA_new 3
|
|
||||||
.It Fn ENGINE_get_EC Ta Xr EC_KEY_new_method 3 , Xr EC_KEY_new 3 ,
|
|
||||||
.Xr EC_KEY_new_by_curve_name 3
|
|
||||||
.It Fn ENGINE_get_DH Ta Xr DH_new_method 3 , Xr DH_new 3
|
|
||||||
.It Fn ENGINE_get_RAND Ta unused
|
|
||||||
.It Fn ENGINE_get_STORE Ta unused
|
|
||||||
.It Fn ENGINE_get_cipher Ta Xr EVP_CipherInit_ex 3
|
|
||||||
.It Fn ENGINE_get_digest Ta Xr EVP_DigestInit_ex 3
|
|
||||||
.El
|
|
||||||
.Sh RETURN VALUES
|
|
||||||
The
|
|
||||||
.Fn ENGINE_set_*
|
|
||||||
functions return 1 on success or 0 on error.
|
|
||||||
Currently, they cannot fail.
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Fn ENGINE_get_*
|
|
||||||
functions return a method object for the respective algorithm, or
|
|
||||||
.Dv NULL
|
|
||||||
if none is installed.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_ciphers
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_digests
|
|
||||||
return a function pointer to the respective callback, or
|
|
||||||
.Dv NULL
|
|
||||||
if none is installed.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_cipher
|
|
||||||
returns an
|
|
||||||
.Vt EVP_CIPHER
|
|
||||||
object implementing the cipher
|
|
||||||
.Fa nid
|
|
||||||
or
|
|
||||||
.Dv NULL
|
|
||||||
if
|
|
||||||
.Fa e
|
|
||||||
does not implement that cipher.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_digest
|
|
||||||
returns an
|
|
||||||
.Vt EVP_MD
|
|
||||||
object implementing the digest
|
|
||||||
.Fa nid
|
|
||||||
or
|
|
||||||
.Dv NULL
|
|
||||||
if
|
|
||||||
.Fa e
|
|
||||||
does not implement that digest.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr DSA_new 3 ,
|
|
||||||
.Xr ENGINE_ctrl 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_default 3 ,
|
|
||||||
.Xr ENGINE_set_flags 3 ,
|
|
||||||
.Xr EVP_DigestInit 3 ,
|
|
||||||
.Xr EVP_EncryptInit 3 ,
|
|
||||||
.Xr RSA_new 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_set_RSA ,
|
|
||||||
.Fn ENGINE_get_RSA ,
|
|
||||||
.Fn ENGINE_set_DSA ,
|
|
||||||
.Fn ENGINE_get_DSA ,
|
|
||||||
.Fn ENGINE_set_DH ,
|
|
||||||
.Fn ENGINE_get_DH ,
|
|
||||||
.Fn ENGINE_set_RAND ,
|
|
||||||
.Fn ENGINE_get_RAND ,
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 2.9 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_ciphers ,
|
|
||||||
.Fn ENGINE_get_ciphers ,
|
|
||||||
.Fn ENGINE_get_cipher ,
|
|
||||||
.Fn ENGINE_set_digests ,
|
|
||||||
.Fn ENGINE_get_digests ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_digest
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 3.2 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_STORE
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_STORE
|
|
||||||
first appeared in OpenSSL 0.9.8 and have been available since
|
|
||||||
.Ox 4.5 .
|
|
||||||
.Fn ENGINE_set_EC
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_EC
|
|
||||||
first appeared in OpenSSL 1.1.0 and have been available since
|
|
||||||
.Ox 6.5 .
|
|
|
@ -1,186 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_set_default.3,v 1.4 2019/06/03 14:43:15 schwarze Exp $
|
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: June 3 2019 $
|
|
||||||
.Dt ENGINE 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_set_default ,
|
|
||||||
.Nm ENGINE_set_default_string ,
|
|
||||||
.Nm ENGINE_set_default_RSA ,
|
|
||||||
.Nm ENGINE_set_default_DSA ,
|
|
||||||
.Nm ENGINE_set_default_ECDH ,
|
|
||||||
.Nm ENGINE_set_default_ECDSA ,
|
|
||||||
.Nm ENGINE_set_default_DH ,
|
|
||||||
.Nm ENGINE_set_default_RAND ,
|
|
||||||
.Nm ENGINE_set_default_ciphers ,
|
|
||||||
.Nm ENGINE_set_default_digests
|
|
||||||
.Nd register an ENGINE as the default for an algorithm
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_RSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_DSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_ECDH
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_ECDSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_DH
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_RAND
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_ciphers
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_digests
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "unsigned int flags"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_default_string
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "const char *list"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
These functions register
|
|
||||||
.Fa e
|
|
||||||
as implementing the respective algorithm
|
|
||||||
like the functions described in the
|
|
||||||
.Xr ENGINE_register_RSA 3
|
|
||||||
manual page do it.
|
|
||||||
In addition, they call
|
|
||||||
.Xr ENGINE_init 3
|
|
||||||
on
|
|
||||||
.Fa e
|
|
||||||
and select
|
|
||||||
.Fa e
|
|
||||||
as the default implementation of the respective algorithm to be
|
|
||||||
returned by the functions described in
|
|
||||||
.Xr ENGINE_get_default_RSA 3
|
|
||||||
in the future.
|
|
||||||
If another engine was previously selected
|
|
||||||
as the default implementation of the respective algorithm,
|
|
||||||
.Xr ENGINE_finish 3
|
|
||||||
is called on that previous engine.
|
|
||||||
.Pp
|
|
||||||
If
|
|
||||||
.Fa e
|
|
||||||
implements more than one cipher or digest,
|
|
||||||
.Fn ENGINE_set_default_ciphers
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_default_digests
|
|
||||||
register and select it for all these ciphers and digests, respectively.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_default
|
|
||||||
registers
|
|
||||||
.Fa e
|
|
||||||
as the default implementation of all algorithms specified by the
|
|
||||||
.Fa flags
|
|
||||||
by calling the appropriate ones among the other functions.
|
|
||||||
Algorithms can be selected by combining any number of the
|
|
||||||
following constants with bitwise OR:
|
|
||||||
.Dv ENGINE_METHOD_ALL ,
|
|
||||||
.Dv ENGINE_METHOD_RSA ,
|
|
||||||
.Dv ENGINE_METHOD_DSA ,
|
|
||||||
.Dv ENGINE_METHOD_ECDH ,
|
|
||||||
.Dv ENGINE_METHOD_ECDSA ,
|
|
||||||
.Dv ENGINE_METHOD_DH ,
|
|
||||||
.Dv ENGINE_METHOD_RAND ,
|
|
||||||
.Dv ENGINE_METHOD_CIPHERS ,
|
|
||||||
.Dv ENGINE_METHOD_DIGESTS ,
|
|
||||||
.Dv ENGINE_METHOD_PKEY_METHS ,
|
|
||||||
and
|
|
||||||
.Dv ENGINE_METHOD_PKEY_ASN1_METHS .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_default_string
|
|
||||||
is similar except that it selects the algorithms according to the string
|
|
||||||
.Fa def_list ,
|
|
||||||
which contains an arbitrary number of comma-separated keywords from
|
|
||||||
the following list: ALL, RSA, DSA, ECDH, ECDSA, DH, RAND, CIPHERS,
|
|
||||||
DIGESTS, PKEY_CRYPTO, PKEY_ASN1, and PKEY.
|
|
||||||
PKEY_CRYPTO corresponds to
|
|
||||||
.Dv ENGINE_METHOD_PKEY_METHS ,
|
|
||||||
PKEY_ASN1 to
|
|
||||||
.Dv ENGINE_METHOD_PKEY_ASN1_METHS ,
|
|
||||||
and PKEY selects both.
|
|
||||||
.Sh RETURN VALUES
|
|
||||||
These functions return 1 on success or 0 on error.
|
|
||||||
They fail if
|
|
||||||
.Xr ENGINE_init 3
|
|
||||||
fails or if insufficient memory is available.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_get_default_RSA 3 ,
|
|
||||||
.Xr ENGINE_init 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_RSA 3 ,
|
|
||||||
.Xr ENGINE_unregister_RSA 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_set_default ,
|
|
||||||
.Fn ENGINE_set_default_RSA ,
|
|
||||||
.Fn ENGINE_set_default_DSA ,
|
|
||||||
.Fn ENGINE_set_default_DH ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_default_RAND
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 2.9 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_default_string ,
|
|
||||||
.Fn ENGINE_set_default_ciphers ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_default_digests
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 3.2 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_set_default_ECDH
|
|
||||||
and
|
|
||||||
.Fn ENGINE_set_default_ECDSA
|
|
||||||
first appeared in OpenSSL 0.9.8 and have been available since
|
|
||||||
.Ox 4.5 .
|
|
||||||
.Sh CAVEATS
|
|
||||||
Failure of
|
|
||||||
.Xr ENGINE_finish 3
|
|
||||||
is ignored.
|
|
||||||
.Sh BUGS
|
|
||||||
Even when
|
|
||||||
.Fn ENGINE_set_default
|
|
||||||
or
|
|
||||||
.Fn ENGINE_set_default_string
|
|
||||||
fail, they typically still register
|
|
||||||
.Fa e
|
|
||||||
for some algorithms, but usually not for all it could be registered
|
|
||||||
for by calling the individual functions.
|
|
|
@ -1,92 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_set_flags.3,v 1.2 2018/04/18 03:39:22 schwarze Exp $
|
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: April 18 2018 $
|
|
||||||
.Dt ENGINE_SET_FLAGS 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_set_flags ,
|
|
||||||
.Nm ENGINE_get_flags
|
|
||||||
.Nd modify the behaviour of an ENGINE object
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_set_flags
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fa "int flags"
|
|
||||||
.Fc
|
|
||||||
.Ft int
|
|
||||||
.Fo ENGINE_get_flags
|
|
||||||
.Fa "const ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
.Fn ENGINE_set_flags
|
|
||||||
sets the flags attribute of
|
|
||||||
.Fa e
|
|
||||||
to the new
|
|
||||||
.Fa flags .
|
|
||||||
The previous state of the flags attribute is overwritten.
|
|
||||||
Flags that were previously set are cleared
|
|
||||||
unless they are also present in the new
|
|
||||||
.Fa flags .
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Fa flags
|
|
||||||
argument can be the bitwise OR of zero or more
|
|
||||||
of the following constants:
|
|
||||||
.Bl -tag -width Ds
|
|
||||||
.It Dv ENGINE_FLAGS_BY_ID_COPY
|
|
||||||
.Xr ENGINE_by_id 3
|
|
||||||
returns a shallow copy of the
|
|
||||||
.Vt ENGINE
|
|
||||||
object it found rather than incrementing the reference count
|
|
||||||
and returning a pointer to the original.
|
|
||||||
.It Dv ENGINE_FLAGS_MANUAL_CMD_CTRL
|
|
||||||
.Xr ENGINE_ctrl 3
|
|
||||||
lets the function installed with
|
|
||||||
.Xr ENGINE_set_ctrl_function 3
|
|
||||||
handle all commands except
|
|
||||||
.Dv ENGINE_CTRL_HAS_CTRL_FUNCTION ,
|
|
||||||
even the builtin commands.
|
|
||||||
.It Dv ENGINE_FLAGS_NO_REGISTER_ALL
|
|
||||||
.Xr ENGINE_register_all_complete 3
|
|
||||||
skips
|
|
||||||
.Fa e .
|
|
||||||
.El
|
|
||||||
.Sh RETURN VALUES
|
|
||||||
.Fn ENGINE_set_flags
|
|
||||||
always returns 1.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_get_flags
|
|
||||||
returns the
|
|
||||||
.Fa flags
|
|
||||||
attribute of
|
|
||||||
.Fa e .
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_by_id 3 ,
|
|
||||||
.Xr ENGINE_ctrl 3 ,
|
|
||||||
.Xr ENGINE_init 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_all_complete 3 ,
|
|
||||||
.Xr ENGINE_set_RSA 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_set_flags
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_flags
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 3.2 .
|
|
|
@ -1,119 +0,0 @@
|
||||||
.\" $OpenBSD: ENGINE_unregister_RSA.3,v 1.3 2018/04/18 03:39:22 schwarze Exp $
|
|
||||||
.\" content checked up to:
|
|
||||||
.\" OpenSSL ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
|
|
||||||
.\"
|
|
||||||
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
|
|
||||||
.\"
|
|
||||||
.\" Permission to use, copy, modify, and distribute this software for any
|
|
||||||
.\" purpose with or without fee is hereby granted, provided that the above
|
|
||||||
.\" copyright notice and this permission notice appear in all copies.
|
|
||||||
.\"
|
|
||||||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
.\"
|
|
||||||
.Dd $Mdocdate: April 18 2018 $
|
|
||||||
.Dt ENGINE_UNREGISTER_RSA 3
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm ENGINE_unregister_RSA ,
|
|
||||||
.Nm ENGINE_unregister_DSA ,
|
|
||||||
.Nm ENGINE_unregister_ECDH ,
|
|
||||||
.Nm ENGINE_unregister_ECDSA ,
|
|
||||||
.Nm ENGINE_unregister_DH ,
|
|
||||||
.Nm ENGINE_unregister_RAND ,
|
|
||||||
.Nm ENGINE_unregister_STORE ,
|
|
||||||
.Nm ENGINE_unregister_ciphers ,
|
|
||||||
.Nm ENGINE_unregister_digests
|
|
||||||
.Nd revoke the registration of an ENGINE object
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.In openssl/engine.h
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_RSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_DSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_ECDH
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_ECDSA
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_DH
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_RAND
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_STORE
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_ciphers
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo ENGINE_unregister_digests
|
|
||||||
.Fa "ENGINE *e"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
These functions remove
|
|
||||||
.Fa e
|
|
||||||
from the list of
|
|
||||||
.Vt ENGINE
|
|
||||||
objects that were previously registered for the respective algorithm
|
|
||||||
with the functions described in
|
|
||||||
.Xr ENGINE_register_RSA 3 .
|
|
||||||
.Pp
|
|
||||||
If
|
|
||||||
.Fa e
|
|
||||||
is currently used as the default engine for the algorithm
|
|
||||||
as described in the
|
|
||||||
.Fn ENGINE_set_default 3
|
|
||||||
and
|
|
||||||
.Fn ENGINE_get_default_RSA 3
|
|
||||||
manual pages,
|
|
||||||
.Xr ENGINE_finish 3
|
|
||||||
is also called.
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_unregister_ciphers
|
|
||||||
and
|
|
||||||
.Fn ENGINE_unregister_digests
|
|
||||||
unregister
|
|
||||||
.Fa e
|
|
||||||
for all ciphers or digests, respectively.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr ENGINE_cleanup 3 ,
|
|
||||||
.Xr ENGINE_finish 3 ,
|
|
||||||
.Xr ENGINE_new 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_default 3
|
|
||||||
.Sh HISTORY
|
|
||||||
.Fn ENGINE_unregister_RSA ,
|
|
||||||
.Fn ENGINE_unregister_DSA ,
|
|
||||||
.Fn ENGINE_unregister_DH ,
|
|
||||||
.Fn ENGINE_unregister_RAND ,
|
|
||||||
.Fn ENGINE_unregister_ciphers ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_unregister_digests
|
|
||||||
first appeared in OpenSSL 0.9.7 and have been available since
|
|
||||||
.Ox 3.2 .
|
|
||||||
.Pp
|
|
||||||
.Fn ENGINE_unregister_ECDH ,
|
|
||||||
.Fn ENGINE_unregister_ECDSA ,
|
|
||||||
and
|
|
||||||
.Fn ENGINE_unregister_STORE
|
|
||||||
first appeared in OpenSSL 0.9.8 and have been available since
|
|
||||||
.Ox 4.5 .
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: EVP_OpenInit.3,v 1.8 2019/06/07 20:46:25 schwarze Exp $
|
.\" $OpenBSD: EVP_OpenInit.3,v 1.9 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: June 7 2019 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt EVP_OPENINIT 3
|
.Dt EVP_OPENINIT 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -131,6 +131,9 @@ parameter is a variable length cipher then the key length will be set to
|
||||||
the value of the recovered key length.
|
the value of the recovered key length.
|
||||||
If the cipher is a fixed length cipher then the recovered key length
|
If the cipher is a fixed length cipher then the recovered key length
|
||||||
must match the fixed cipher length.
|
must match the fixed cipher length.
|
||||||
|
.Pp
|
||||||
|
.Fn EVP_OpenUpdate
|
||||||
|
is implemented as a macro.
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn EVP_OpenInit
|
.Fn EVP_OpenInit
|
||||||
returns 0 on error or a non-zero integer (actually the recovered secret
|
returns 0 on error or a non-zero integer (actually the recovered secret
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: EVP_PKEY_encrypt.3,v 1.8 2023/05/14 09:29:37 tb Exp $
|
.\" $OpenBSD: EVP_PKEY_encrypt.3,v 1.9 2023/11/19 10:09:27 tb Exp $
|
||||||
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: May 14 2023 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt EVP_PKEY_ENCRYPT 3
|
.Dt EVP_PKEY_ENCRYPT 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -138,17 +138,15 @@ to start with the default OpenSSL RSA implementation:
|
||||||
.Bd -literal -offset indent
|
.Bd -literal -offset indent
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#include <openssl/engine.h>
|
|
||||||
|
|
||||||
EVP_PKEY_CTX *ctx;
|
EVP_PKEY_CTX *ctx;
|
||||||
ENGINE *eng;
|
|
||||||
unsigned char *out, *in;
|
unsigned char *out, *in;
|
||||||
size_t outlen, inlen;
|
size_t outlen, inlen;
|
||||||
EVP_PKEY *key;
|
EVP_PKEY *key;
|
||||||
/* NB: assumes eng, key in, inlen are already set up
|
/* NB: assumes that key, in, inlen are already set up
|
||||||
* and that key is an RSA public key
|
* and that key is an RSA public key
|
||||||
*/
|
*/
|
||||||
ctx = EVP_PKEY_CTX_new(key, eng);
|
ctx = EVP_PKEY_CTX_new(key, NULL);
|
||||||
if (!ctx)
|
if (!ctx)
|
||||||
/* Error occurred */
|
/* Error occurred */
|
||||||
if (EVP_PKEY_encrypt_init(ctx) <= 0)
|
if (EVP_PKEY_encrypt_init(ctx) <= 0)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: EVP_SealInit.3,v 1.8 2019/06/07 20:46:25 schwarze Exp $
|
.\" $OpenBSD: EVP_SealInit.3,v 1.9 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: June 7 2019 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt EVP_SEALINIT 3
|
.Dt EVP_SEALINIT 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -162,6 +162,9 @@ set to 0 and (after setting any cipher parameters) it should be called
|
||||||
again with
|
again with
|
||||||
.Fa type
|
.Fa type
|
||||||
set to NULL.
|
set to NULL.
|
||||||
|
.Pp
|
||||||
|
.Fn EVP_SealUpdate
|
||||||
|
is implemented as a macro.
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn EVP_SealInit
|
.Fn EVP_SealInit
|
||||||
returns 0 on error or
|
returns 0 on error or
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: EVP_SignInit.3,v 1.16 2022/07/13 19:10:40 schwarze Exp $
|
.\" $OpenBSD: EVP_SignInit.3,v 1.17 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\" selective merge up to: OpenSSL 79b49fb0 Mar 20 10:03:10 2018 +1000
|
.\" selective merge up to: OpenSSL 79b49fb0 Mar 20 10:03:10 2018 +1000
|
||||||
.\"
|
.\"
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: July 13 2022 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt EVP_SIGNINIT 3
|
.Dt EVP_SIGNINIT 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -157,6 +157,12 @@ Since only a copy of the digest context is ever finalized, the context
|
||||||
must be cleaned up after use by calling
|
must be cleaned up after use by calling
|
||||||
.Xr EVP_MD_CTX_free 3
|
.Xr EVP_MD_CTX_free 3
|
||||||
or a memory leak will occur.
|
or a memory leak will occur.
|
||||||
|
.Pp
|
||||||
|
.Fn EVP_SignInit_ex ,
|
||||||
|
.Fn EVP_SignUpdate ,
|
||||||
|
and
|
||||||
|
.Fn EVP_SignInit
|
||||||
|
are implemented as macros.
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn EVP_SignInit_ex ,
|
.Fn EVP_SignInit_ex ,
|
||||||
.Fn EVP_SignUpdate ,
|
.Fn EVP_SignUpdate ,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: EVP_VerifyInit.3,v 1.10 2019/06/10 14:58:48 schwarze Exp $
|
.\" $OpenBSD: EVP_VerifyInit.3,v 1.11 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\" selective merge up to: OpenSSL 79b49fb0 Mar 20 10:03:10 2018 +1000
|
.\" selective merge up to: OpenSSL 79b49fb0 Mar 20 10:03:10 2018 +1000
|
||||||
.\"
|
.\"
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: June 10 2019 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt EVP_VERIFYINIT 3
|
.Dt EVP_VERIFYINIT 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -147,6 +147,12 @@ Since only a copy of the digest context is ever finalized, the context
|
||||||
must be cleaned up after use by calling
|
must be cleaned up after use by calling
|
||||||
.Xr EVP_MD_CTX_free 3 ,
|
.Xr EVP_MD_CTX_free 3 ,
|
||||||
or a memory leak will occur.
|
or a memory leak will occur.
|
||||||
|
.Pp
|
||||||
|
.Fn EVP_VerifyInit_ex ,
|
||||||
|
.Fn EVP_VerifyUpdate ,
|
||||||
|
and
|
||||||
|
.Fn EVP_VerifyInit
|
||||||
|
are implemented as macros.
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn EVP_VerifyInit_ex
|
.Fn EVP_VerifyInit_ex
|
||||||
and
|
and
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: EVP_aes_128_cbc.3,v 1.4 2020/06/24 18:15:00 jmc Exp $
|
.\" $OpenBSD: EVP_aes_128_cbc.3,v 1.5 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" selective merge up to: OpenSSL 7c6d372a Nov 20 13:20:01 2018 +0000
|
.\" selective merge up to: OpenSSL 7c6d372a Nov 20 13:20:01 2018 +0000
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Ronald Tse <ronald.tse@ribose.com>
|
.\" This file was written by Ronald Tse <ronald.tse@ribose.com>
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: June 24 2020 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt EVP_AES_128_CBC 3
|
.Dt EVP_AES_128_CBC 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -205,7 +205,8 @@ are aliases for
|
||||||
.Fn EVP_aes_128_cfb128 ,
|
.Fn EVP_aes_128_cfb128 ,
|
||||||
.Fn EVP_aes_192_cfb128 ,
|
.Fn EVP_aes_192_cfb128 ,
|
||||||
and
|
and
|
||||||
.Fn EVP_aes_256_cfb128 .
|
.Fn EVP_aes_256_cfb128 ,
|
||||||
|
implemented as macros.
|
||||||
.Pp
|
.Pp
|
||||||
.Fn EVP_aes_128_cbc_hmac_sha1
|
.Fn EVP_aes_128_cbc_hmac_sha1
|
||||||
and
|
and
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: EVP_sm4_cbc.3,v 1.1 2019/03/18 05:56:24 schwarze Exp $
|
.\" $OpenBSD: EVP_sm4_cbc.3,v 1.2 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL 87103969 Oct 1 14:11:57 2018 -0700
|
.\" full merge up to: OpenSSL 87103969 Oct 1 14:11:57 2018 -0700
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2017 Ribose Inc
|
.\" Copyright (c) 2017 Ribose Inc
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: March 18 2019 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt EVP_SM4_CBC 3
|
.Dt EVP_SM4_CBC 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -53,7 +53,8 @@ bits.
|
||||||
.Pp
|
.Pp
|
||||||
.Fn EVP_sm4_cfb
|
.Fn EVP_sm4_cfb
|
||||||
is an alias for
|
is an alias for
|
||||||
.Fn EVP_sm4_cfb128 .
|
.Fn EVP_sm4_cfb128 ,
|
||||||
|
implemented as a macro.
|
||||||
.Pp
|
.Pp
|
||||||
With an argument of
|
With an argument of
|
||||||
.Qq sm4
|
.Qq sm4
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $OpenBSD: Makefile,v 1.276 2023/09/29 08:57:49 tb Exp $
|
# $OpenBSD: Makefile,v 1.277 2023/11/19 10:36:14 tb Exp $
|
||||||
|
|
||||||
.include <bsd.own.mk>
|
.include <bsd.own.mk>
|
||||||
|
|
||||||
|
@ -140,17 +140,7 @@ MAN= \
|
||||||
EC_KEY_new.3 \
|
EC_KEY_new.3 \
|
||||||
EC_POINT_add.3 \
|
EC_POINT_add.3 \
|
||||||
EC_POINT_new.3 \
|
EC_POINT_new.3 \
|
||||||
ENGINE_add.3 \
|
|
||||||
ENGINE_ctrl.3 \
|
|
||||||
ENGINE_get_default_RSA.3 \
|
|
||||||
ENGINE_init.3 \
|
|
||||||
ENGINE_new.3 \
|
ENGINE_new.3 \
|
||||||
ENGINE_register_RSA.3 \
|
|
||||||
ENGINE_register_all_RSA.3 \
|
|
||||||
ENGINE_set_RSA.3 \
|
|
||||||
ENGINE_set_default.3 \
|
|
||||||
ENGINE_set_flags.3 \
|
|
||||||
ENGINE_unregister_RSA.3 \
|
|
||||||
ERR.3 \
|
ERR.3 \
|
||||||
ERR_GET_LIB.3 \
|
ERR_GET_LIB.3 \
|
||||||
ERR_asprintf_error_data.3 \
|
ERR_asprintf_error_data.3 \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: OPENSSL_VERSION_NUMBER.3,v 1.12 2019/06/06 01:06:58 schwarze Exp $
|
.\" $OpenBSD: OPENSSL_VERSION_NUMBER.3,v 1.13 2023/11/16 20:17:04 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL 1f13ad31 Dec 25 17:50:39 2017 +0800
|
.\" full merge up to: OpenSSL 1f13ad31 Dec 25 17:50:39 2017 +0800
|
||||||
.\"
|
.\"
|
||||||
.\" This file is a derived work.
|
.\" This file is a derived work.
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: June 6 2019 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt OPENSSL_VERSION_NUMBER 3
|
.Dt OPENSSL_VERSION_NUMBER 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -217,7 +217,7 @@ is an alias for
|
||||||
and
|
and
|
||||||
.Fn SSLeay
|
.Fn SSLeay
|
||||||
for
|
for
|
||||||
.Dv OpenSSL_version_num .
|
.Fn OpenSSL_version_num .
|
||||||
The legacy function
|
The legacy function
|
||||||
.Fn SSLeay_version
|
.Fn SSLeay_version
|
||||||
is similar to
|
is similar to
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: OPENSSL_config.3,v 1.15 2019/06/14 13:41:31 schwarze Exp $
|
.\" $OpenBSD: OPENSSL_config.3,v 1.16 2023/11/19 21:01:27 tb Exp $
|
||||||
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file is a derived work.
|
.\" This file is a derived work.
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: June 14 2019 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt OPENSSL_CONFIG 3
|
.Dt OPENSSL_CONFIG 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -117,10 +117,9 @@ To use a non-standard configuration file, refer to
|
||||||
Internally,
|
Internally,
|
||||||
.Fn OPENSSL_config
|
.Fn OPENSSL_config
|
||||||
calls
|
calls
|
||||||
.Xr OPENSSL_init_crypto 3 ,
|
.Xr OPENSSL_init_crypto 3
|
||||||
.Xr OPENSSL_load_builtin_modules 3 ,
|
|
||||||
and
|
and
|
||||||
.Xr ENGINE_load_builtin_engines 3 .
|
.Xr OPENSSL_load_builtin_modules 3 .
|
||||||
.Pp
|
.Pp
|
||||||
If an application is compiled with the preprocessor symbol
|
If an application is compiled with the preprocessor symbol
|
||||||
.Dv OPENSSL_LOAD_CONF
|
.Dv OPENSSL_LOAD_CONF
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: OPENSSL_load_builtin_modules.3,v 1.6 2019/06/14 13:41:31 schwarze Exp $
|
.\" $OpenBSD: OPENSSL_load_builtin_modules.3,v 1.7 2023/11/19 20:59:00 tb Exp $
|
||||||
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
||||||
|
@ -48,13 +48,12 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: June 14 2019 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt OPENSSL_LOAD_BUILTIN_MODULES 3
|
.Dt OPENSSL_LOAD_BUILTIN_MODULES 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm OPENSSL_load_builtin_modules ,
|
.Nm OPENSSL_load_builtin_modules ,
|
||||||
.Nm ASN1_add_oid_module ,
|
.Nm ASN1_add_oid_module ,
|
||||||
.Nm ENGINE_add_conf_module
|
|
||||||
.Nd add standard configuration modules
|
.Nd add standard configuration modules
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.In openssl/conf.h
|
.In openssl/conf.h
|
||||||
|
@ -62,8 +61,6 @@
|
||||||
.Fn OPENSSL_load_builtin_modules void
|
.Fn OPENSSL_load_builtin_modules void
|
||||||
.Ft void
|
.Ft void
|
||||||
.Fn ASN1_add_oid_module void
|
.Fn ASN1_add_oid_module void
|
||||||
.Ft void
|
|
||||||
.Fn ENGINE_add_conf_module void
|
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
The function
|
The function
|
||||||
.Fn OPENSSL_load_builtin_modules
|
.Fn OPENSSL_load_builtin_modules
|
||||||
|
@ -74,9 +71,6 @@ They can then be used by the OpenSSL configuration code.
|
||||||
.Fn ASN1_add_oid_module
|
.Fn ASN1_add_oid_module
|
||||||
adds just the ASN.1 OBJECT module.
|
adds just the ASN.1 OBJECT module.
|
||||||
.Pp
|
.Pp
|
||||||
.Fn ENGINE_add_conf_module
|
|
||||||
adds just the ENGINE configuration module.
|
|
||||||
.Pp
|
|
||||||
If the simple configuration function
|
If the simple configuration function
|
||||||
.Xr OPENSSL_config 3
|
.Xr OPENSSL_config 3
|
||||||
is called then
|
is called then
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: OPENSSL_malloc.3,v 1.10 2022/11/06 18:31:15 tb Exp $
|
.\" $OpenBSD: OPENSSL_malloc.3,v 1.11 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
|
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
|
||||||
.\"
|
.\"
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: November 6 2022 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt OPENSSL_MALLOC 3
|
.Dt OPENSSL_MALLOC 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -83,6 +83,10 @@ standard
|
||||||
and
|
and
|
||||||
.Xr strdup 3
|
.Xr strdup 3
|
||||||
functions.
|
functions.
|
||||||
|
.Pp
|
||||||
|
The four
|
||||||
|
.Fn OPENSSL_*
|
||||||
|
functions are implemented as macros.
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
These functions return the same type and value as the corresponding
|
These functions return the same type and value as the corresponding
|
||||||
standard functions.
|
standard functions.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: OpenSSL_add_all_algorithms.3,v 1.14 2023/09/10 14:39:58 schwarze Exp $
|
.\" $OpenBSD: OpenSSL_add_all_algorithms.3,v 1.15 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" full merge up to: OpenSSL b3696a55 Sep 2 09:35:50 2017 -0400
|
.\" full merge up to: OpenSSL b3696a55 Sep 2 09:35:50 2017 -0400
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: September 10 2023 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt OPENSSL_ADD_ALL_ALGORITHMS 3
|
.Dt OPENSSL_ADD_ALL_ALGORITHMS 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -117,6 +117,11 @@ including any that are unrelated to the EVP library.
|
||||||
.Fn SSLeay_add_all_algorithms
|
.Fn SSLeay_add_all_algorithms
|
||||||
is a deprecated alias for
|
is a deprecated alias for
|
||||||
.Fn OpenSSL_add_all_algorithms .
|
.Fn OpenSSL_add_all_algorithms .
|
||||||
|
.Pp
|
||||||
|
.Fn OpenSSL_add_all_algorithms
|
||||||
|
and
|
||||||
|
.Fn SSLeay_add_all_algorithms
|
||||||
|
are implemented as macros.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr evp 3 ,
|
.Xr evp 3 ,
|
||||||
.Xr EVP_add_cipher 3 ,
|
.Xr EVP_add_cipher 3 ,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: RSA_check_key.3,v 1.9 2023/05/01 07:28:11 tb Exp $
|
.\" $OpenBSD: RSA_check_key.3,v 1.10 2023/11/19 21:06:15 tb Exp $
|
||||||
.\" OpenSSL 6859cf74 Sep 25 13:33:28 2002 +0000
|
.\" OpenSSL 6859cf74 Sep 25 13:33:28 2002 +0000
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
|
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: May 1 2023 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt RSA_CHECK_KEY 3
|
.Dt RSA_CHECK_KEY 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -92,27 +92,6 @@ key structure must contain all the private key data too.
|
||||||
Therefore, it cannot be used with any arbitrary
|
Therefore, it cannot be used with any arbitrary
|
||||||
.Vt RSA
|
.Vt RSA
|
||||||
key object, even if it is otherwise fit for regular RSA operation.
|
key object, even if it is otherwise fit for regular RSA operation.
|
||||||
.Pp
|
|
||||||
Unlike most other RSA functions, this function does
|
|
||||||
.Sy not
|
|
||||||
work transparently with any underlying
|
|
||||||
.Vt ENGINE
|
|
||||||
implementation because it uses the key data in the
|
|
||||||
.Vt RSA
|
|
||||||
structure directly.
|
|
||||||
An
|
|
||||||
.Vt ENGINE
|
|
||||||
implementation can override the way key data is stored and handled,
|
|
||||||
and can even provide support for HSM keys - in which case the
|
|
||||||
.Vt RSA
|
|
||||||
structure may contain
|
|
||||||
.Sy no
|
|
||||||
key data at all!
|
|
||||||
If the
|
|
||||||
.Vt ENGINE
|
|
||||||
in question is only being used for acceleration or analysis purposes,
|
|
||||||
then in all likelihood the RSA key data is complete and untouched,
|
|
||||||
but this can't be assumed in the general case.
|
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn RSA_check_key
|
.Fn RSA_check_key
|
||||||
returns 1 if
|
returns 1 if
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: RSA_get_ex_new_index.3,v 1.12 2023/09/18 14:49:43 schwarze Exp $
|
.\" $OpenBSD: RSA_get_ex_new_index.3,v 1.13 2023/11/19 21:08:04 tb Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2023 Ingo Schwarze <schwarze@openbsd.org>
|
.\" Copyright (c) 2023 Ingo Schwarze <schwarze@openbsd.org>
|
||||||
.\"
|
.\"
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: September 18 2023 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt RSA_GET_EX_NEW_INDEX 3
|
.Dt RSA_GET_EX_NEW_INDEX 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
The following parent objects can have application specific data called
|
The following parent objects can have application specific data called
|
||||||
.Dq ex_data
|
.Dq ex_data
|
||||||
attached to them:
|
attached to them:
|
||||||
.Vt BIO , DH , DSA , EC_KEY , ENGINE , RSA ,
|
.Vt BIO , DH , DSA , EC_KEY , RSA ,
|
||||||
.Vt SSL , SSL_CTX , SSL_SESSION , UI , X509 , X509_STORE ,
|
.Vt SSL , SSL_CTX , SSL_SESSION , UI , X509 , X509_STORE ,
|
||||||
and
|
and
|
||||||
.Vt X509_STORE_CTX .
|
.Vt X509_STORE_CTX .
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: RSA_new.3,v 1.17 2022/07/13 21:51:35 schwarze Exp $
|
.\" $OpenBSD: RSA_new.3,v 1.18 2023/11/19 21:03:22 tb Exp $
|
||||||
.\" full merge up to:
|
.\" full merge up to:
|
||||||
.\" OpenSSL doc/man3/RSA_new.pod e9b77246 Jan 20 19:58:49 2017 +0100
|
.\" OpenSSL doc/man3/RSA_new.pod e9b77246 Jan 20 19:58:49 2017 +0100
|
||||||
.\" OpenSSL doc/crypto/rsa.pod 35d2e327 Jun 3 16:19:49 2016 -0400 (final)
|
.\" OpenSSL doc/crypto/rsa.pod 35d2e327 Jun 3 16:19:49 2016 -0400 (final)
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: July 13 2022 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt RSA_NEW 3
|
.Dt RSA_NEW 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -128,12 +128,8 @@ decrements the reference count by 1.
|
||||||
If it reaches 0, it calls the optional
|
If it reaches 0, it calls the optional
|
||||||
.Fa finish
|
.Fa finish
|
||||||
function set up with
|
function set up with
|
||||||
.Xr RSA_meth_set_finish 3 ,
|
.Xr RSA_meth_set_finish 3
|
||||||
calls
|
and frees the
|
||||||
.Xr ENGINE_finish 3
|
|
||||||
if
|
|
||||||
.Fa rsa
|
|
||||||
uses an engine, and frees the
|
|
||||||
.Vt RSA
|
.Vt RSA
|
||||||
structure and its components.
|
structure and its components.
|
||||||
The key is erased before the memory is returned to the system.
|
The key is erased before the memory is returned to the system.
|
||||||
|
@ -185,12 +181,8 @@ values are available.
|
||||||
.Pp
|
.Pp
|
||||||
Note that RSA keys may use non-standard
|
Note that RSA keys may use non-standard
|
||||||
.Vt RSA_METHOD
|
.Vt RSA_METHOD
|
||||||
implementations, either directly or by the use of
|
implementations.
|
||||||
.Vt ENGINE
|
In some cases, these
|
||||||
modules.
|
|
||||||
In some cases (e.g. an
|
|
||||||
.Vt ENGINE
|
|
||||||
providing support for hardware-embedded keys), these
|
|
||||||
.Vt BIGNUM
|
.Vt BIGNUM
|
||||||
values will not be used by the implementation or may be used for
|
values will not be used by the implementation or may be used for
|
||||||
alternative data storage.
|
alternative data storage.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: RSA_set_method.3,v 1.17 2023/05/14 09:33:19 tb Exp $
|
.\" $OpenBSD: RSA_set_method.3,v 1.18 2023/11/19 10:34:26 tb Exp $
|
||||||
.\" OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
|
.\" OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Ulf Moeller <ulf@openssl.org>
|
.\" This file was written by Ulf Moeller <ulf@openssl.org>
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: May 14 2023 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt RSA_SET_METHOD 3
|
.Dt RSA_SET_METHOD 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -105,16 +105,9 @@ selects
|
||||||
as the default method for all
|
as the default method for all
|
||||||
.Vt RSA
|
.Vt RSA
|
||||||
structures created later.
|
structures created later.
|
||||||
If any
|
|
||||||
.Vt ENGINE
|
|
||||||
was registered with
|
|
||||||
.Xr ENGINE_register_RSA 3
|
|
||||||
that can be successfully initialized, it overrides the default.
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn RSA_get_default_method
|
.Fn RSA_get_default_method
|
||||||
returns a pointer to the current default method,
|
returns a pointer to the current default method.
|
||||||
even if it is actually overridden by an
|
|
||||||
.Vt ENGINE .
|
|
||||||
.Pp
|
.Pp
|
||||||
.Fn RSA_set_method
|
.Fn RSA_set_method
|
||||||
selects
|
selects
|
||||||
|
@ -127,10 +120,7 @@ used by the RSA key, calling the
|
||||||
.Fa finish
|
.Fa finish
|
||||||
function set up with
|
function set up with
|
||||||
.Xr RSA_meth_set_finish 3
|
.Xr RSA_meth_set_finish 3
|
||||||
if any, and if the previous method was supplied by an
|
if any.
|
||||||
.Vt ENGINE ,
|
|
||||||
.Xr ENGINE_finish 3
|
|
||||||
is called on it.
|
|
||||||
If
|
If
|
||||||
.Fa meth
|
.Fa meth
|
||||||
contains an
|
contains an
|
||||||
|
@ -142,9 +132,7 @@ that function is called just before returning from
|
||||||
.Pp
|
.Pp
|
||||||
It is possible to have RSA keys that only work with certain
|
It is possible to have RSA keys that only work with certain
|
||||||
.Vt RSA_METHOD
|
.Vt RSA_METHOD
|
||||||
implementations (e.g. from an
|
implementations,
|
||||||
.Vt ENGINE
|
|
||||||
module that supports embedded hardware-protected keys),
|
|
||||||
and in such cases attempting to change the
|
and in such cases attempting to change the
|
||||||
.Vt RSA_METHOD
|
.Vt RSA_METHOD
|
||||||
for the key can have unexpected results.
|
for the key can have unexpected results.
|
||||||
|
@ -154,12 +142,6 @@ returns a pointer to the
|
||||||
.Vt RSA_METHOD
|
.Vt RSA_METHOD
|
||||||
being used by
|
being used by
|
||||||
.Fa rsa .
|
.Fa rsa .
|
||||||
This method may or may not be supplied by an
|
|
||||||
.Vt ENGINE
|
|
||||||
implementation but if it is, the return value can only be guaranteed
|
|
||||||
to be valid as long as the RSA key itself is valid and does not
|
|
||||||
have its implementation changed by
|
|
||||||
.Fn RSA_set_method .
|
|
||||||
.Pp
|
.Pp
|
||||||
The misleadingly named function
|
The misleadingly named function
|
||||||
.Fn RSA_flags
|
.Fn RSA_flags
|
||||||
|
@ -178,17 +160,10 @@ section for more details.
|
||||||
.Fn RSA_new_method
|
.Fn RSA_new_method
|
||||||
allocates and initializes an
|
allocates and initializes an
|
||||||
.Vt RSA
|
.Vt RSA
|
||||||
structure so that
|
structure.
|
||||||
|
The
|
||||||
.Fa engine
|
.Fa engine
|
||||||
is used for the RSA operations.
|
argument is ignored and
|
||||||
If
|
|
||||||
.Fa engine
|
|
||||||
is
|
|
||||||
.Dv NULL ,
|
|
||||||
.Xr ENGINE_get_default_RSA 3
|
|
||||||
is used.
|
|
||||||
If that returns
|
|
||||||
.Dv NULL ,
|
|
||||||
the default method controlled by
|
the default method controlled by
|
||||||
.Fn RSA_set_default_method
|
.Fn RSA_set_default_method
|
||||||
is used.
|
is used.
|
||||||
|
@ -224,9 +199,6 @@ and sets an error code that can be obtained by
|
||||||
if the allocation fails.
|
if the allocation fails.
|
||||||
Otherwise it returns a pointer to the newly allocated structure.
|
Otherwise it returns a pointer to the newly allocated structure.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr ENGINE_get_default_RSA 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr ENGINE_set_default_RSA 3 ,
|
|
||||||
.Xr RSA_meth_new 3 ,
|
.Xr RSA_meth_new 3 ,
|
||||||
.Xr RSA_new 3
|
.Xr RSA_new 3
|
||||||
.Sh HISTORY
|
.Sh HISTORY
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: X509_STORE_get_by_subject.3,v 1.4 2023/08/10 14:15:16 schwarze Exp $
|
.\" $OpenBSD: X509_STORE_get_by_subject.3,v 1.5 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2021, 2023 Ingo Schwarze <schwarze@openbsd.org>
|
.\" Copyright (c) 2021, 2023 Ingo Schwarze <schwarze@openbsd.org>
|
||||||
.\"
|
.\"
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: August 10 2023 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt X509_STORE_GET_BY_SUBJECT 3
|
.Dt X509_STORE_GET_BY_SUBJECT 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -160,7 +160,7 @@ encourage checking of validity times, CAs with a valid time are
|
||||||
preferred, but if no matching CA has a valid time, one with an
|
preferred, but if no matching CA has a valid time, one with an
|
||||||
invalid time is accepted anyway.
|
invalid time is accepted anyway.
|
||||||
.Pp
|
.Pp
|
||||||
The following are deprecated aliases:
|
The following are deprecated aliases implemented as macros:
|
||||||
.Bl -column X509_STORE_get_by_subject F X509_STORE_CTX_get_by_subject
|
.Bl -column X509_STORE_get_by_subject F X509_STORE_CTX_get_by_subject
|
||||||
.It Fn X509_STORE_get_by_subject Ta for Ta Fn X509_STORE_CTX_get_by_subject
|
.It Fn X509_STORE_get_by_subject Ta for Ta Fn X509_STORE_CTX_get_by_subject
|
||||||
.It Fn X509_STORE_get1_certs Ta for Ta Fn X509_STORE_CTX_get1_certs
|
.It Fn X509_STORE_get1_certs Ta for Ta Fn X509_STORE_CTX_get1_certs
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: X509_STORE_set1_param.3,v 1.19 2021/10/18 18:20:39 schwarze Exp $
|
.\" $OpenBSD: X509_STORE_set1_param.3,v 1.20 2023/11/16 20:27:43 schwarze Exp $
|
||||||
.\" content checked up to:
|
.\" content checked up to:
|
||||||
.\" OpenSSL man3/X509_STORE_add_cert b0edda11 Mar 20 13:00:17 2018 +0000
|
.\" OpenSSL man3/X509_STORE_add_cert b0edda11 Mar 20 13:00:17 2018 +0000
|
||||||
.\" OpenSSL man3/X509_STORE_get0_param e90fc053 Jul 15 09:39:45 2017 -0400
|
.\" OpenSSL man3/X509_STORE_get0_param e90fc053 Jul 15 09:39:45 2017 -0400
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: October 18 2021 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt X509_STORE_SET1_PARAM 3
|
.Dt X509_STORE_SET1_PARAM 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -145,6 +145,8 @@ Their usage is identical to that of
|
||||||
.Xr RSA_set_ex_data 3 ,
|
.Xr RSA_set_ex_data 3 ,
|
||||||
and
|
and
|
||||||
.Xr RSA_get_ex_data 3 .
|
.Xr RSA_get_ex_data 3 .
|
||||||
|
.Fn X509_STORE_get_ex_new_index
|
||||||
|
is implemented as a macro.
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
.Fn X509_STORE_set1_param ,
|
.Fn X509_STORE_set1_param ,
|
||||||
.Fn X509_STORE_set_purpose ,
|
.Fn X509_STORE_set_purpose ,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: bn_dump.3,v 1.8 2023/01/20 12:16:46 jsing Exp $
|
.\" $OpenBSD: bn_dump.3,v 1.9 2023/11/16 18:10:19 schwarze Exp $
|
||||||
.\" full merge up to:
|
.\" full merge up to:
|
||||||
.\" OpenSSL crypto/bn/README.pod aebb9aac Jul 19 09:27:53 2016 -0400
|
.\" OpenSSL crypto/bn/README.pod aebb9aac Jul 19 09:27:53 2016 -0400
|
||||||
.\"
|
.\"
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: January 20 2023 $
|
.Dd $Mdocdate: November 16 2023 $
|
||||||
.Dt BN_DUMP 3
|
.Dt BN_DUMP 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -64,28 +64,12 @@
|
||||||
.Nm bn_mul_comba8 ,
|
.Nm bn_mul_comba8 ,
|
||||||
.Nm bn_sqr_comba4 ,
|
.Nm bn_sqr_comba4 ,
|
||||||
.Nm bn_sqr_comba8 ,
|
.Nm bn_sqr_comba8 ,
|
||||||
.Nm bn_cmp_words ,
|
|
||||||
.Nm bn_mul_normal ,
|
.Nm bn_mul_normal ,
|
||||||
.Nm bn_mul_recursive ,
|
|
||||||
.Nm bn_mul_part_recursive ,
|
|
||||||
.Nm bn_sqr_normal ,
|
|
||||||
.Nm bn_sqr_recursive ,
|
|
||||||
.Nm bn_expand ,
|
.Nm bn_expand ,
|
||||||
.Nm bn_wexpand ,
|
.Nm bn_wexpand
|
||||||
.Nm bn_expand2 ,
|
|
||||||
.Nm bn_fix_top ,
|
|
||||||
.Nm bn_check_top ,
|
|
||||||
.Nm bn_print ,
|
|
||||||
.Nm bn_dump ,
|
|
||||||
.Nm bn_set_max ,
|
|
||||||
.Nm bn_set_high ,
|
|
||||||
.Nm bn_set_low ,
|
|
||||||
.Nm mul ,
|
|
||||||
.Nm mul_add ,
|
|
||||||
.Nm sqr
|
|
||||||
.Nd BIGNUM library internal functions
|
.Nd BIGNUM library internal functions
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.In openssl/bn.h
|
.Fd #include "bn_local.h"
|
||||||
.Ft BN_ULONG
|
.Ft BN_ULONG
|
||||||
.Fo bn_mul_words
|
.Fo bn_mul_words
|
||||||
.Fa "BN_ULONG *rp"
|
.Fa "BN_ULONG *rp"
|
||||||
|
@ -148,12 +132,6 @@
|
||||||
.Fa "BN_ULONG *r"
|
.Fa "BN_ULONG *r"
|
||||||
.Fa "BN_ULONG *a"
|
.Fa "BN_ULONG *a"
|
||||||
.Fc
|
.Fc
|
||||||
.Ft int
|
|
||||||
.Fo bn_cmp_words
|
|
||||||
.Fa "BN_ULONG *a"
|
|
||||||
.Fa "BN_ULONG *b"
|
|
||||||
.Fa "int n"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
.Ft void
|
||||||
.Fo bn_mul_normal
|
.Fo bn_mul_normal
|
||||||
.Fa "BN_ULONG *r"
|
.Fa "BN_ULONG *r"
|
||||||
|
@ -162,60 +140,6 @@
|
||||||
.Fa "BN_ULONG *b"
|
.Fa "BN_ULONG *b"
|
||||||
.Fa "int nb"
|
.Fa "int nb"
|
||||||
.Fc
|
.Fc
|
||||||
.Ft void
|
|
||||||
.Fo bn_mul_recursive
|
|
||||||
.Fa "BN_ULONG *r"
|
|
||||||
.Fa "BN_ULONG *a"
|
|
||||||
.Fa "BN_ULONG *b"
|
|
||||||
.Fa "int n2"
|
|
||||||
.Fa "int dna"
|
|
||||||
.Fa "int dnb"
|
|
||||||
.Fa "BN_ULONG *tmp"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_mul_part_recursive
|
|
||||||
.Fa "BN_ULONG *r"
|
|
||||||
.Fa "BN_ULONG *a"
|
|
||||||
.Fa "BN_ULONG *b"
|
|
||||||
.Fa "int n"
|
|
||||||
.Fa "int tna"
|
|
||||||
.Fa "int tnb"
|
|
||||||
.Fa "BN_ULONG *tmp"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_sqr_normal
|
|
||||||
.Fa "BN_ULONG *r"
|
|
||||||
.Fa "BN_ULONG *a"
|
|
||||||
.Fa "int n"
|
|
||||||
.Fa "BN_ULONG *tmp"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_sqr_recursive
|
|
||||||
.Fa "BN_ULONG *r"
|
|
||||||
.Fa "BN_ULONG *a"
|
|
||||||
.Fa "int n2"
|
|
||||||
.Fa "BN_ULONG *tmp"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo mul
|
|
||||||
.Fa "BN_ULONG r"
|
|
||||||
.Fa "BN_ULONG a"
|
|
||||||
.Fa "BN_ULONG w"
|
|
||||||
.Fa "BN_ULONG c"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo mul_add
|
|
||||||
.Fa "BN_ULONG r"
|
|
||||||
.Fa "BN_ULONG a"
|
|
||||||
.Fa "BN_ULONG w"
|
|
||||||
.Fa "BN_ULONG c"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo sqr
|
|
||||||
.Fa "BN_ULONG r0"
|
|
||||||
.Fa "BN_ULONG r1"
|
|
||||||
.Fa "BN_ULONG a"
|
|
||||||
.Fc
|
|
||||||
.Ft BIGNUM *
|
.Ft BIGNUM *
|
||||||
.Fo bn_expand
|
.Fo bn_expand
|
||||||
.Fa "BIGNUM *a"
|
.Fa "BIGNUM *a"
|
||||||
|
@ -226,46 +150,8 @@
|
||||||
.Fa "BIGNUM *a"
|
.Fa "BIGNUM *a"
|
||||||
.Fa "int n"
|
.Fa "int n"
|
||||||
.Fc
|
.Fc
|
||||||
.Ft BIGNUM *
|
|
||||||
.Fo bn_expand2
|
|
||||||
.Fa "BIGNUM *a"
|
|
||||||
.Fa "int n"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_fix_top
|
|
||||||
.Fa "BIGNUM *a"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_check_top
|
|
||||||
.Fa "BIGNUM *a"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_print
|
|
||||||
.Fa "BIGNUM *a"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_dump
|
|
||||||
.Fa "BN_ULONG *d"
|
|
||||||
.Fa "int n"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_set_max
|
|
||||||
.Fa "BIGNUM *a"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_set_high
|
|
||||||
.Fa "BIGNUM *r"
|
|
||||||
.Fa "BIGNUM *a"
|
|
||||||
.Fa "int n"
|
|
||||||
.Fc
|
|
||||||
.Ft void
|
|
||||||
.Fo bn_set_low
|
|
||||||
.Fa "BIGNUM *r"
|
|
||||||
.Fa "BIGNUM *a"
|
|
||||||
.Fa "int n"
|
|
||||||
.Fc
|
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
This page documents the internal functions used by the OpenSSL
|
This page documents some internal functions used by the
|
||||||
.Vt BIGNUM
|
.Vt BIGNUM
|
||||||
implementation.
|
implementation.
|
||||||
They are described here to facilitate debugging and extending the
|
They are described here to facilitate debugging and extending the
|
||||||
|
@ -327,16 +213,12 @@ is a bit field of flags which are defined in
|
||||||
.In openssl/bn.h .
|
.In openssl/bn.h .
|
||||||
The flags begin with
|
The flags begin with
|
||||||
.Dv BN_FLG_ .
|
.Dv BN_FLG_ .
|
||||||
The macros
|
The functions
|
||||||
.Fn BN_set_flags b n
|
.Xr BN_set_flags 3
|
||||||
and
|
and
|
||||||
.Fn BN_get_flags b n
|
.Xr BN_get_flags 3
|
||||||
exist to enable or fetch flag(s)
|
enable or inspect
|
||||||
.Fa n
|
.Fa flags .
|
||||||
from a
|
|
||||||
.Vt BIGNUM
|
|
||||||
structure
|
|
||||||
.Fa b .
|
|
||||||
.Pp
|
.Pp
|
||||||
Various routines in this library require the use of temporary
|
Various routines in this library require the use of temporary
|
||||||
.Vt BIGNUM
|
.Vt BIGNUM
|
||||||
|
@ -488,18 +370,6 @@ and the 16 word array
|
||||||
.Pp
|
.Pp
|
||||||
The following functions are implemented in C:
|
The following functions are implemented in C:
|
||||||
.Pp
|
.Pp
|
||||||
.Fn bn_cmp_words a b n
|
|
||||||
operates on the
|
|
||||||
.Fa n
|
|
||||||
word arrays
|
|
||||||
.Fa a
|
|
||||||
and
|
|
||||||
.Fa b .
|
|
||||||
It returns 1, 0 and -1 if
|
|
||||||
.Fa a
|
|
||||||
is greater than, equal and less than
|
|
||||||
.Fa b .
|
|
||||||
.Pp
|
|
||||||
.Fn bn_mul_normal r a na b nb
|
.Fn bn_mul_normal r a na b nb
|
||||||
operates on the
|
operates on the
|
||||||
.Fa na
|
.Fa na
|
||||||
|
@ -518,103 +388,15 @@ It computes
|
||||||
and places the result in
|
and places the result in
|
||||||
.Fa r .
|
.Fa r .
|
||||||
.Pp
|
.Pp
|
||||||
.Fn bn_mul_recursive r a b n2 dna dnb t
|
|
||||||
operates on the word arrays
|
|
||||||
.Fa a
|
|
||||||
and
|
|
||||||
.Fa b
|
|
||||||
of length
|
|
||||||
.Fa n2 Ns + Ns Fa dna
|
|
||||||
and
|
|
||||||
.Fa n2 Ns + Ns Fa dnb
|
|
||||||
.Pf ( Fa dna
|
|
||||||
and
|
|
||||||
.Fa dnb
|
|
||||||
are currently allowed to be 0 or negative) and the
|
|
||||||
.Pf 2* Fa n2
|
|
||||||
word arrays
|
|
||||||
.Fa r
|
|
||||||
and
|
|
||||||
.Sy t .
|
|
||||||
.Fa n2
|
|
||||||
must be a power of 2.
|
|
||||||
It computes
|
|
||||||
.Fa a Ns * Ns Fa b
|
|
||||||
and places the result in
|
|
||||||
.Fa r .
|
|
||||||
.Pp
|
|
||||||
.Fn bn_mul_part_recursive r a b n tna tnb tmp
|
|
||||||
operates on the word arrays
|
|
||||||
.Fa a
|
|
||||||
and
|
|
||||||
.Fa b
|
|
||||||
of length
|
|
||||||
.Fa n Ns + Ns Fa tna
|
|
||||||
and
|
|
||||||
.Fa n Ns + Ns Fa tnb
|
|
||||||
and the
|
|
||||||
.Pf 4* Fa n
|
|
||||||
word arrays
|
|
||||||
.Fa r
|
|
||||||
and
|
|
||||||
.Fa tmp .
|
|
||||||
.Pp
|
|
||||||
.Xr BN_mul 3
|
.Xr BN_mul 3
|
||||||
calls
|
calls
|
||||||
.Fn bn_mul_normal ,
|
.Fn bn_mul_comba4
|
||||||
or an optimized implementation if the factors have the same size:
|
if both factors are 4 words long,
|
||||||
.Fn bn_mul_comba8
|
.Fn bn_mul_comba8
|
||||||
is used if they are 8 words long,
|
if both factors are 8 words long,
|
||||||
.Fn bn_mul_recursive
|
or
|
||||||
if they are larger than
|
.Fn bn_mul_normal
|
||||||
.Dv BN_MULL_SIZE_NORMAL
|
otherwise.
|
||||||
and the size is an exact multiple of the word size, and
|
|
||||||
.Fn bn_mul_part_recursive
|
|
||||||
for others that are larger than
|
|
||||||
.Dv BN_MULL_SIZE_NORMAL .
|
|
||||||
.Pp
|
|
||||||
.Fn bn_sqr_normal r a n tmp
|
|
||||||
operates on the
|
|
||||||
.Fa n
|
|
||||||
word array
|
|
||||||
.Fa a
|
|
||||||
and the
|
|
||||||
.Pf 2* Fa n
|
|
||||||
word arrays
|
|
||||||
.Fa tmp
|
|
||||||
and
|
|
||||||
.Fa r .
|
|
||||||
.Pp
|
|
||||||
The implementations use the following macros which, depending on the
|
|
||||||
architecture, may use
|
|
||||||
.Vt long long
|
|
||||||
C operations or inline assembler.
|
|
||||||
They are defined in
|
|
||||||
.Pa bn_lcl.h .
|
|
||||||
.Pp
|
|
||||||
.Fn mul r a w c
|
|
||||||
computes
|
|
||||||
.Fa w Ns * Ns Fa a Ns + Ns Fa c
|
|
||||||
and places the low word of the result in
|
|
||||||
.Fa r
|
|
||||||
and the high word in
|
|
||||||
.Fa c .
|
|
||||||
.Pp
|
|
||||||
.Fn mul_add r a w c
|
|
||||||
computes
|
|
||||||
.Fa w Ns * Ns Fa a Ns + Ns Fa r Ns + Ns Fa c
|
|
||||||
and places the low word of the result in
|
|
||||||
.Fa r
|
|
||||||
and the high word in
|
|
||||||
.Fa c .
|
|
||||||
.Pp
|
|
||||||
.Fn sqr r0 r1 a
|
|
||||||
computes
|
|
||||||
.Fa a Ns * Ns Fa a
|
|
||||||
and places the low word of the result in
|
|
||||||
.Fa r0
|
|
||||||
and the high word in
|
|
||||||
.Fa r1 .
|
|
||||||
.Ss Size changes
|
.Ss Size changes
|
||||||
.Fn bn_expand
|
.Fn bn_expand
|
||||||
ensures that
|
ensures that
|
||||||
|
@ -628,71 +410,6 @@ ensures that
|
||||||
has enough space for an
|
has enough space for an
|
||||||
.Fa n
|
.Fa n
|
||||||
word number.
|
word number.
|
||||||
If the number has to be expanded, both macros call
|
They return 0 on error or 1 otherwise.
|
||||||
.Fn bn_expand2 ,
|
|
||||||
which allocates a new
|
|
||||||
.Fa d
|
|
||||||
array and copies the data.
|
|
||||||
They return
|
|
||||||
.Dv NULL
|
|
||||||
on error,
|
|
||||||
.Fa b
|
|
||||||
otherwise.
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Fn bn_fix_top
|
|
||||||
macro reduces
|
|
||||||
.Fa a Ns -> Ns Fa top
|
|
||||||
to point to the most significant non-zero word plus one when
|
|
||||||
.Fa a
|
|
||||||
has shrunk.
|
|
||||||
.Ss Debugging
|
|
||||||
.Fn bn_check_top
|
|
||||||
verifies that
|
|
||||||
.Ql ((a)-\(ratop \(ra= 0 && (a)-\(ratop \(la= (a)-\(radmax) .
|
|
||||||
A violation will cause the program to abort.
|
|
||||||
.Pp
|
|
||||||
.Fn bn_print
|
|
||||||
prints
|
|
||||||
.Fa a
|
|
||||||
to
|
|
||||||
.Dv stderr .
|
|
||||||
.Fn bn_dump
|
|
||||||
prints
|
|
||||||
.Fa n
|
|
||||||
words at
|
|
||||||
.Fa d
|
|
||||||
(in reverse order, i.e.\&
|
|
||||||
most significant word first) to
|
|
||||||
.Dv stderr .
|
|
||||||
.Pp
|
|
||||||
.Fn bn_set_max
|
|
||||||
makes
|
|
||||||
.Fa a
|
|
||||||
a static number with a
|
|
||||||
.Fa dmax
|
|
||||||
of its current size.
|
|
||||||
This is used by
|
|
||||||
.Fn bn_set_low
|
|
||||||
and
|
|
||||||
.Fn bn_set_high
|
|
||||||
to make
|
|
||||||
.Fa r
|
|
||||||
a read-only
|
|
||||||
.Vt BIGNUM
|
|
||||||
that contains the
|
|
||||||
.Fa n
|
|
||||||
low or high words of
|
|
||||||
.Fa a .
|
|
||||||
.Pp
|
|
||||||
If
|
|
||||||
.Dv BN_DEBUG
|
|
||||||
is not defined,
|
|
||||||
.Fn bn_check_top ,
|
|
||||||
.Fn bn_print ,
|
|
||||||
.Fn bn_dump
|
|
||||||
and
|
|
||||||
.Fn bn_set_max
|
|
||||||
are defined as empty macros.
|
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr BN_new 3
|
.Xr BN_new 3
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: evp.3,v 1.24 2023/09/09 14:39:09 schwarze Exp $
|
.\" $OpenBSD: evp.3,v 1.25 2023/11/19 10:25:28 tb Exp $
|
||||||
.\" full merge up to: OpenSSL man7/evp 24a535ea Sep 22 13:14:20 2020 +0100
|
.\" full merge up to: OpenSSL man7/evp 24a535ea Sep 22 13:14:20 2020 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
|
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: September 9 2023 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt EVP 3
|
.Dt EVP 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -156,30 +156,6 @@ example, PBKDF2 from PCKS#5).
|
||||||
The
|
The
|
||||||
.Xr EVP_EncodeInit 3
|
.Xr EVP_EncodeInit 3
|
||||||
family of functions provides base64 encoding and decoding.
|
family of functions provides base64 encoding and decoding.
|
||||||
.Pp
|
|
||||||
All the symmetric algorithms (ciphers), digests and asymmetric
|
|
||||||
algorithms (public key algorithms) can be replaced by
|
|
||||||
.Vt ENGINE
|
|
||||||
modules providing alternative implementations; see
|
|
||||||
.Xr ENGINE_register_RSA 3
|
|
||||||
and the related manual pages for more information.
|
|
||||||
If
|
|
||||||
.Vt ENGINE
|
|
||||||
implementations of ciphers or digests are registered as defaults,
|
|
||||||
then the various EVP functions will automatically use those
|
|
||||||
implementations in preference to built in software implementations.
|
|
||||||
.Pp
|
|
||||||
Although low-level algorithm specific functions exist for many
|
|
||||||
algorithms, their use is discouraged.
|
|
||||||
They cannot be used with an
|
|
||||||
.Vt ENGINE ,
|
|
||||||
and
|
|
||||||
.Vt ENGINE
|
|
||||||
versions of new algorithms cannot be accessed using the low-level
|
|
||||||
functions.
|
|
||||||
Using them also makes code harder to adapt to new algorithms, some
|
|
||||||
options are not cleanly supported at the low level, and some
|
|
||||||
operations are more efficient using the high-level interfaces.
|
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr ASN1_item_digest 3 ,
|
.Xr ASN1_item_digest 3 ,
|
||||||
.Xr ASN1_item_sign 3 ,
|
.Xr ASN1_item_sign 3 ,
|
||||||
|
@ -191,8 +167,6 @@ operations are more efficient using the high-level interfaces.
|
||||||
.Xr crypto 3 ,
|
.Xr crypto 3 ,
|
||||||
.Xr d2i_PKCS8PrivateKey_bio 3 ,
|
.Xr d2i_PKCS8PrivateKey_bio 3 ,
|
||||||
.Xr d2i_PrivateKey 3 ,
|
.Xr d2i_PrivateKey 3 ,
|
||||||
.Xr ENGINE_get_cipher 3 ,
|
|
||||||
.Xr ENGINE_register_RSA 3 ,
|
|
||||||
.Xr EVP_add_cipher 3 ,
|
.Xr EVP_add_cipher 3 ,
|
||||||
.Xr EVP_AEAD_CTX_init 3 ,
|
.Xr EVP_AEAD_CTX_init 3 ,
|
||||||
.Xr EVP_aes_128_cbc 3 ,
|
.Xr EVP_aes_128_cbc 3 ,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: openssl.cnf.5,v 1.9 2023/10/21 14:05:49 tb Exp $
|
.\" $OpenBSD: openssl.cnf.5,v 1.10 2023/11/19 10:23:53 tb Exp $
|
||||||
.\" full merge up to: OpenSSL man5/config b53338cb Feb 28 12:30:28 2017 +0100
|
.\" full merge up to: OpenSSL man5/config b53338cb Feb 28 12:30:28 2017 +0100
|
||||||
.\" selective merge up to: OpenSSL a8c5ed81 Jul 18 13:57:25 2017 -0400
|
.\" selective merge up to: OpenSSL a8c5ed81 Jul 18 13:57:25 2017 -0400
|
||||||
.\"
|
.\"
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: October 21 2023 $
|
.Dd $Mdocdate: November 19 2023 $
|
||||||
.Dt OPENSSL.CNF 5
|
.Dt OPENSSL.CNF 5
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -192,13 +192,9 @@ openssl_conf = openssl_init
|
||||||
|
|
||||||
[openssl_init]
|
[openssl_init]
|
||||||
oid_section = new_oids
|
oid_section = new_oids
|
||||||
engines = engine_section
|
|
||||||
|
|
||||||
[new_oids]
|
[new_oids]
|
||||||
\&... new oids here ...
|
\&... new oids here ...
|
||||||
|
|
||||||
[engine_section]
|
|
||||||
\&... engine stuff here ...
|
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
The features of each configuration module are described below.
|
The features of each configuration module are described below.
|
||||||
|
@ -228,106 +224,6 @@ comma and the numerical OID form.
|
||||||
For example:
|
For example:
|
||||||
.Pp
|
.Pp
|
||||||
.Dl shortName = some object long name, 1.2.3.4
|
.Dl shortName = some object long name, 1.2.3.4
|
||||||
.Ss Engine Configuration Module
|
|
||||||
This ENGINE configuration module has the name
|
|
||||||
.Ic engines .
|
|
||||||
The value of this variable points to a section containing further ENGINE
|
|
||||||
configuration information.
|
|
||||||
.Pp
|
|
||||||
The section pointed to by
|
|
||||||
.Ic engines
|
|
||||||
is a table of engine names (though see
|
|
||||||
.Ic engine_id
|
|
||||||
below) and further sections containing configuration information
|
|
||||||
specific to each ENGINE.
|
|
||||||
.Pp
|
|
||||||
Each ENGINE specific section is used to set default algorithms, load
|
|
||||||
dynamic ENGINEs, perform initialization and send ctrls.
|
|
||||||
The actual operation performed depends on the command
|
|
||||||
name which is the name of the name value pair.
|
|
||||||
The currently supported commands are listed below.
|
|
||||||
.Pp
|
|
||||||
For example:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
[engine_section]
|
|
||||||
# Configure ENGINE named "foo"
|
|
||||||
foo = foo_section
|
|
||||||
# Configure ENGINE named "bar"
|
|
||||||
bar = bar_section
|
|
||||||
|
|
||||||
[foo_section]
|
|
||||||
\&... foo ENGINE specific commands ...
|
|
||||||
|
|
||||||
[bar_section]
|
|
||||||
\&... "bar" ENGINE specific commands ...
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
The command
|
|
||||||
.Ic engine_id
|
|
||||||
is used to give the ENGINE name.
|
|
||||||
If used, this command must be first.
|
|
||||||
For example:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
[engine_section]
|
|
||||||
# This would normally handle an ENGINE named "foo"
|
|
||||||
foo = foo_section
|
|
||||||
|
|
||||||
[foo_section]
|
|
||||||
# Override default name and use "myfoo" instead.
|
|
||||||
engine_id = myfoo
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
The command
|
|
||||||
.Ic dynamic_path
|
|
||||||
loads and adds an ENGINE from the given path.
|
|
||||||
It is equivalent to sending the ctrls
|
|
||||||
.Sy SO_PATH
|
|
||||||
with the path argument followed by
|
|
||||||
.Sy LIST_ADD
|
|
||||||
with value 2 and
|
|
||||||
.Sy LOAD
|
|
||||||
to the dynamic ENGINE.
|
|
||||||
If this is not the required behaviour then alternative ctrls can be sent
|
|
||||||
directly to the dynamic ENGINE using ctrl commands.
|
|
||||||
.Pp
|
|
||||||
The command
|
|
||||||
.Ic init
|
|
||||||
determines whether to initialize the ENGINE.
|
|
||||||
If the value is 0, the ENGINE will not be initialized.
|
|
||||||
If it is 1, an attempt is made to initialized the ENGINE immediately.
|
|
||||||
If the
|
|
||||||
.Ic init
|
|
||||||
command is not present, then an attempt will be made to initialize
|
|
||||||
the ENGINE after all commands in its section have been processed.
|
|
||||||
.Pp
|
|
||||||
The command
|
|
||||||
.Ic default_algorithms
|
|
||||||
sets the default algorithms an ENGINE will supply using the functions
|
|
||||||
.Xr ENGINE_set_default_string 3 .
|
|
||||||
.Pp
|
|
||||||
If the name matches none of the above command names, it is assumed
|
|
||||||
to be a ctrl command which is sent to the ENGINE.
|
|
||||||
The value of the command is the argument to the ctrl command.
|
|
||||||
If the value is the string
|
|
||||||
.Cm EMPTY ,
|
|
||||||
then no value is sent to the command.
|
|
||||||
.Pp
|
|
||||||
For example:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
[engine_section]
|
|
||||||
# Configure ENGINE named "foo"
|
|
||||||
foo = foo_section
|
|
||||||
|
|
||||||
[foo_section]
|
|
||||||
# Load engine from DSO
|
|
||||||
dynamic_path = /some/path/fooengine.so
|
|
||||||
# A foo specific ctrl.
|
|
||||||
some_ctrl = some_value
|
|
||||||
# Another ctrl that doesn't take a value.
|
|
||||||
other_ctrl = EMPTY
|
|
||||||
# Supply all default algorithms
|
|
||||||
default_algorithms = ALL
|
|
||||||
.Ed
|
|
||||||
.Sh FILES
|
.Sh FILES
|
||||||
.Bl -tag -width /etc/ssl/openssl.cnf -compact
|
.Bl -tag -width /etc/ssl/openssl.cnf -compact
|
||||||
.It Pa /etc/ssl/openssl.cnf
|
.It Pa /etc/ssl/openssl.cnf
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: pem_lib.c,v 1.53 2023/07/07 13:40:44 beck Exp $ */
|
/* $OpenBSD: pem_lib.c,v 1.54 2023/11/19 15:46:10 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -74,9 +74,6 @@
|
||||||
#ifndef OPENSSL_NO_DES
|
#ifndef OPENSSL_NO_DES
|
||||||
#include <openssl/des.h>
|
#include <openssl/des.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "asn1_local.h"
|
#include "asn1_local.h"
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
|
@ -231,9 +228,6 @@ check_pem(const char *nm, const char *name)
|
||||||
r = 1;
|
r = 1;
|
||||||
else
|
else
|
||||||
r = 0;
|
r = 0;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(e);
|
|
||||||
#endif
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: pem_pkey.c,v 1.27 2023/07/07 13:40:44 beck Exp $ */
|
/* $OpenBSD: pem_pkey.c,v 1.28 2023/11/19 15:46:10 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -69,10 +69,6 @@
|
||||||
#include <openssl/pkcs12.h>
|
#include <openssl/pkcs12.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "asn1_local.h"
|
#include "asn1_local.h"
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: pk7_doit.c,v 1.52 2023/03/09 18:20:10 tb Exp $ */
|
/* $OpenBSD: pk7_doit.c,v 1.54 2023/11/15 00:55:43 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -68,10 +68,6 @@
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
#include "x509_local.h"
|
#include "x509_local.h"
|
||||||
|
|
||||||
static int add_attribute(STACK_OF(X509_ATTRIBUTE) **sk, int nid, int atrtype,
|
|
||||||
void *value);
|
|
||||||
static ASN1_TYPE *get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid);
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
PKCS7_type_is_other(PKCS7* p7)
|
PKCS7_type_is_other(PKCS7* p7)
|
||||||
{
|
{
|
||||||
|
@ -407,7 +403,7 @@ err:
|
||||||
BIO_free_all(btmp);
|
BIO_free_all(btmp);
|
||||||
out = NULL;
|
out = NULL;
|
||||||
}
|
}
|
||||||
return (out);
|
return out;
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(PKCS7_dataInit);
|
LCRYPTO_ALIAS(PKCS7_dataInit);
|
||||||
|
|
||||||
|
@ -636,7 +632,7 @@ err:
|
||||||
BIO_free_all(etmp);
|
BIO_free_all(etmp);
|
||||||
out = NULL;
|
out = NULL;
|
||||||
}
|
}
|
||||||
return (out);
|
return out;
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(PKCS7_dataDecode);
|
LCRYPTO_ALIAS(PKCS7_dataDecode);
|
||||||
|
|
||||||
|
@ -865,7 +861,7 @@ PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
|
||||||
ret = 1;
|
ret = 1;
|
||||||
err:
|
err:
|
||||||
EVP_MD_CTX_cleanup(&ctx_tmp);
|
EVP_MD_CTX_cleanup(&ctx_tmp);
|
||||||
return (ret);
|
return ret;
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(PKCS7_dataFinal);
|
LCRYPTO_ALIAS(PKCS7_dataFinal);
|
||||||
|
|
||||||
|
@ -1093,7 +1089,7 @@ PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, X509 *x509)
|
||||||
ret = 1;
|
ret = 1;
|
||||||
err:
|
err:
|
||||||
EVP_MD_CTX_cleanup(&mdc_tmp);
|
EVP_MD_CTX_cleanup(&mdc_tmp);
|
||||||
return (ret);
|
return ret;
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(PKCS7_signatureVerify);
|
LCRYPTO_ALIAS(PKCS7_signatureVerify);
|
||||||
|
|
||||||
|
@ -1114,26 +1110,12 @@ PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx)
|
||||||
return NULL;
|
return NULL;
|
||||||
ri = sk_PKCS7_RECIP_INFO_value(rsk, 0);
|
ri = sk_PKCS7_RECIP_INFO_value(rsk, 0);
|
||||||
if (sk_PKCS7_RECIP_INFO_num(rsk) <= idx)
|
if (sk_PKCS7_RECIP_INFO_num(rsk) <= idx)
|
||||||
return (NULL);
|
return NULL;
|
||||||
ri = sk_PKCS7_RECIP_INFO_value(rsk, idx);
|
ri = sk_PKCS7_RECIP_INFO_value(rsk, idx);
|
||||||
return (ri->issuer_and_serial);
|
return ri->issuer_and_serial;
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(PKCS7_get_issuer_and_serial);
|
LCRYPTO_ALIAS(PKCS7_get_issuer_and_serial);
|
||||||
|
|
||||||
ASN1_TYPE *
|
|
||||||
PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid)
|
|
||||||
{
|
|
||||||
return (get_attribute(si->auth_attr, nid));
|
|
||||||
}
|
|
||||||
LCRYPTO_ALIAS(PKCS7_get_signed_attribute);
|
|
||||||
|
|
||||||
ASN1_TYPE *
|
|
||||||
PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid)
|
|
||||||
{
|
|
||||||
return (get_attribute(si->unauth_attr, nid));
|
|
||||||
}
|
|
||||||
LCRYPTO_ALIAS(PKCS7_get_attribute);
|
|
||||||
|
|
||||||
static ASN1_TYPE *
|
static ASN1_TYPE *
|
||||||
get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid)
|
get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid)
|
||||||
{
|
{
|
||||||
|
@ -1143,15 +1125,29 @@ get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid)
|
||||||
|
|
||||||
o = OBJ_nid2obj(nid);
|
o = OBJ_nid2obj(nid);
|
||||||
if (!o || !sk)
|
if (!o || !sk)
|
||||||
return (NULL);
|
return NULL;
|
||||||
for (i = 0; i < sk_X509_ATTRIBUTE_num(sk); i++) {
|
for (i = 0; i < sk_X509_ATTRIBUTE_num(sk); i++) {
|
||||||
xa = sk_X509_ATTRIBUTE_value(sk, i);
|
xa = sk_X509_ATTRIBUTE_value(sk, i);
|
||||||
if (OBJ_cmp(xa->object, o) == 0)
|
if (OBJ_cmp(xa->object, o) == 0)
|
||||||
return (sk_ASN1_TYPE_value(xa->set, 0));
|
return sk_ASN1_TYPE_value(xa->set, 0);
|
||||||
}
|
}
|
||||||
return (NULL);
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ASN1_TYPE *
|
||||||
|
PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid)
|
||||||
|
{
|
||||||
|
return get_attribute(si->auth_attr, nid);
|
||||||
|
}
|
||||||
|
LCRYPTO_ALIAS(PKCS7_get_signed_attribute);
|
||||||
|
|
||||||
|
ASN1_TYPE *
|
||||||
|
PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid)
|
||||||
|
{
|
||||||
|
return get_attribute(si->unauth_attr, nid);
|
||||||
|
}
|
||||||
|
LCRYPTO_ALIAS(PKCS7_get_attribute);
|
||||||
|
|
||||||
ASN1_OCTET_STRING *
|
ASN1_OCTET_STRING *
|
||||||
PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk)
|
PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk)
|
||||||
{
|
{
|
||||||
|
@ -1181,9 +1177,9 @@ PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si,
|
||||||
if ((sk_X509_ATTRIBUTE_set(p7si->auth_attr, i,
|
if ((sk_X509_ATTRIBUTE_set(p7si->auth_attr, i,
|
||||||
X509_ATTRIBUTE_dup(sk_X509_ATTRIBUTE_value(sk, i))))
|
X509_ATTRIBUTE_dup(sk_X509_ATTRIBUTE_value(sk, i))))
|
||||||
== NULL)
|
== NULL)
|
||||||
return (0);
|
return 0;
|
||||||
}
|
}
|
||||||
return (1);
|
return 1;
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(PKCS7_set_signed_attributes);
|
LCRYPTO_ALIAS(PKCS7_set_signed_attributes);
|
||||||
|
|
||||||
|
@ -1202,27 +1198,12 @@ PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, STACK_OF(X509_ATTRIBUTE) *sk)
|
||||||
if ((sk_X509_ATTRIBUTE_set(p7si->unauth_attr, i,
|
if ((sk_X509_ATTRIBUTE_set(p7si->unauth_attr, i,
|
||||||
X509_ATTRIBUTE_dup(sk_X509_ATTRIBUTE_value(sk, i))))
|
X509_ATTRIBUTE_dup(sk_X509_ATTRIBUTE_value(sk, i))))
|
||||||
== NULL)
|
== NULL)
|
||||||
return (0);
|
return 0;
|
||||||
}
|
}
|
||||||
return (1);
|
return 1;
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(PKCS7_set_attributes);
|
LCRYPTO_ALIAS(PKCS7_set_attributes);
|
||||||
|
|
||||||
int
|
|
||||||
PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,
|
|
||||||
void *value)
|
|
||||||
{
|
|
||||||
return (add_attribute(&(p7si->auth_attr), nid, atrtype, value));
|
|
||||||
}
|
|
||||||
LCRYPTO_ALIAS(PKCS7_add_signed_attribute);
|
|
||||||
|
|
||||||
int
|
|
||||||
PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, void *value)
|
|
||||||
{
|
|
||||||
return (add_attribute(&(p7si->unauth_attr), nid, atrtype, value));
|
|
||||||
}
|
|
||||||
LCRYPTO_ALIAS(PKCS7_add_attribute);
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
add_attribute(STACK_OF(X509_ATTRIBUTE) **sk, int nid, int atrtype, void *value)
|
add_attribute(STACK_OF(X509_ATTRIBUTE) **sk, int nid, int atrtype, void *value)
|
||||||
{
|
{
|
||||||
|
@ -1260,5 +1241,20 @@ new_attrib:
|
||||||
goto new_attrib;
|
goto new_attrib;
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
return (1);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,
|
||||||
|
void *value)
|
||||||
|
{
|
||||||
|
return add_attribute(&(p7si->auth_attr), nid, atrtype, value);
|
||||||
|
}
|
||||||
|
LCRYPTO_ALIAS(PKCS7_add_signed_attribute);
|
||||||
|
|
||||||
|
int
|
||||||
|
PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, void *value)
|
||||||
|
{
|
||||||
|
return add_attribute(&(p7si->unauth_attr), nid, atrtype, value);
|
||||||
|
}
|
||||||
|
LCRYPTO_ALIAS(PKCS7_add_attribute);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: rand.h,v 1.23 2022/07/12 14:42:50 kn Exp $ */
|
/* $OpenBSD: rand.h,v 1.24 2023/11/19 15:46:10 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -83,9 +83,6 @@ struct rand_meth_st {
|
||||||
|
|
||||||
int RAND_set_rand_method(const RAND_METHOD *meth);
|
int RAND_set_rand_method(const RAND_METHOD *meth);
|
||||||
const RAND_METHOD *RAND_get_rand_method(void);
|
const RAND_METHOD *RAND_get_rand_method(void);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
int RAND_set_rand_engine(ENGINE *engine);
|
|
||||||
#endif
|
|
||||||
RAND_METHOD *RAND_SSLeay(void);
|
RAND_METHOD *RAND_SSLeay(void);
|
||||||
|
|
||||||
#ifndef LIBRESSL_INTERNAL
|
#ifndef LIBRESSL_INTERNAL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: rand_lib.c,v 1.22 2023/07/07 19:37:54 beck Exp $ */
|
/* $OpenBSD: rand_lib.c,v 1.23 2023/11/19 15:46:10 tb Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
|
* Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
|
||||||
*
|
*
|
||||||
|
@ -45,15 +45,6 @@ RAND_SSLeay(void)
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(RAND_SSLeay);
|
LCRYPTO_ALIAS(RAND_SSLeay);
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
int
|
|
||||||
RAND_set_rand_engine(ENGINE *engine)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
LCRYPTO_ALIAS(RAND_set_rand_engine);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
RAND_cleanup(void)
|
RAND_cleanup(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: rsa_lib.c,v 1.48 2023/07/28 10:05:16 tb Exp $ */
|
/* $OpenBSD: rsa_lib.c,v 1.49 2023/11/19 15:46:10 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -71,10 +71,6 @@
|
||||||
#include "evp_local.h"
|
#include "evp_local.h"
|
||||||
#include "rsa_local.h"
|
#include "rsa_local.h"
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const RSA_METHOD *default_RSA_meth = NULL;
|
static const RSA_METHOD *default_RSA_meth = NULL;
|
||||||
|
|
||||||
RSA *
|
RSA *
|
||||||
|
@ -122,10 +118,6 @@ RSA_set_method(RSA *rsa, const RSA_METHOD *meth)
|
||||||
mtmp = rsa->meth;
|
mtmp = rsa->meth;
|
||||||
if (mtmp->finish)
|
if (mtmp->finish)
|
||||||
mtmp->finish(rsa);
|
mtmp->finish(rsa);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(rsa->engine);
|
|
||||||
rsa->engine = NULL;
|
|
||||||
#endif
|
|
||||||
rsa->meth = meth;
|
rsa->meth = meth;
|
||||||
if (meth->init)
|
if (meth->init)
|
||||||
meth->init(rsa);
|
meth->init(rsa);
|
||||||
|
@ -145,25 +137,6 @@ RSA_new_method(ENGINE *engine)
|
||||||
|
|
||||||
ret->meth = RSA_get_default_method();
|
ret->meth = RSA_get_default_method();
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if (engine != NULL) {
|
|
||||||
if (!ENGINE_init(engine)) {
|
|
||||||
RSAerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
ret->engine = engine;
|
|
||||||
} else {
|
|
||||||
ret->engine = ENGINE_get_default_RSA();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ret->engine != NULL) {
|
|
||||||
if ((ret->meth = ENGINE_get_RSA(ret->engine)) == NULL) {
|
|
||||||
RSAerror(ERR_R_ENGINE_LIB);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret->references = 1;
|
ret->references = 1;
|
||||||
ret->flags = ret->meth->flags & ~RSA_FLAG_NON_FIPS_ALLOW;
|
ret->flags = ret->meth->flags & ~RSA_FLAG_NON_FIPS_ALLOW;
|
||||||
|
|
||||||
|
@ -178,9 +151,6 @@ RSA_new_method(ENGINE *engine)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(ret->engine);
|
|
||||||
#endif
|
|
||||||
free(ret);
|
free(ret);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -201,9 +171,6 @@ RSA_free(RSA *r)
|
||||||
|
|
||||||
if (r->meth->finish)
|
if (r->meth->finish)
|
||||||
r->meth->finish(r);
|
r->meth->finish(r);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
ENGINE_finish(r->engine);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_RSA, r, &r->ex_data);
|
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_RSA, r, &r->ex_data);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ts.h,v 1.22 2023/07/28 09:53:55 tb Exp $ */
|
/* $OpenBSD: ts.h,v 1.23 2023/11/19 15:46:10 tb Exp $ */
|
||||||
/* Written by Zoltan Glozik (zglozik@opentsa.org) for the OpenSSL
|
/* Written by Zoltan Glozik (zglozik@opentsa.org) for the OpenSSL
|
||||||
* project 2002, 2003, 2004.
|
* project 2002, 2003, 2004.
|
||||||
*/
|
*/
|
||||||
|
@ -542,11 +542,6 @@ EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass);
|
||||||
const char *TS_CONF_get_tsa_section(CONF *conf, const char *section);
|
const char *TS_CONF_get_tsa_section(CONF *conf, const char *section);
|
||||||
int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb,
|
int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb,
|
||||||
TS_RESP_CTX *ctx);
|
TS_RESP_CTX *ctx);
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
int TS_CONF_set_crypto_device(CONF *conf, const char *section,
|
|
||||||
const char *device);
|
|
||||||
int TS_CONF_set_default_engine(const char *name);
|
|
||||||
#endif
|
|
||||||
int TS_CONF_set_signer_cert(CONF *conf, const char *section,
|
int TS_CONF_set_signer_cert(CONF *conf, const char *section,
|
||||||
const char *cert, TS_RESP_CTX *ctx);
|
const char *cert, TS_RESP_CTX *ctx);
|
||||||
int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs,
|
int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ts_conf.c,v 1.12 2023/07/07 07:25:21 beck Exp $ */
|
/* $OpenBSD: ts_conf.c,v 1.13 2023/11/19 15:46:10 tb Exp $ */
|
||||||
/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL
|
/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL
|
||||||
* project 2002.
|
* project 2002.
|
||||||
*/
|
*/
|
||||||
|
@ -65,10 +65,6 @@
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/ts.h>
|
#include <openssl/ts.h>
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
#include <openssl/engine.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Macro definitions for the configuration file. */
|
/* Macro definitions for the configuration file. */
|
||||||
|
|
||||||
#define BASE_SECTION "tsa"
|
#define BASE_SECTION "tsa"
|
||||||
|
@ -211,56 +207,6 @@ err:
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(TS_CONF_set_serial);
|
LCRYPTO_ALIAS(TS_CONF_set_serial);
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
|
|
||||||
int
|
|
||||||
TS_CONF_set_crypto_device(CONF *conf, const char *section, const char *device)
|
|
||||||
{
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
if (!device)
|
|
||||||
device = NCONF_get_string(conf, section, ENV_CRYPTO_DEVICE);
|
|
||||||
|
|
||||||
if (device && !TS_CONF_set_default_engine(device)) {
|
|
||||||
TS_CONF_invalid(section, ENV_CRYPTO_DEVICE);
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
ret = 1;
|
|
||||||
|
|
||||||
err:
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
LCRYPTO_ALIAS(TS_CONF_set_crypto_device);
|
|
||||||
|
|
||||||
int
|
|
||||||
TS_CONF_set_default_engine(const char *name)
|
|
||||||
{
|
|
||||||
ENGINE *e = NULL;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
/* Leave the default if builtin specified. */
|
|
||||||
if (strcmp(name, "builtin") == 0)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (!(e = ENGINE_by_id(name)))
|
|
||||||
goto err;
|
|
||||||
/* All the operations are going to be carried out by the engine. */
|
|
||||||
if (!ENGINE_set_default(e, ENGINE_METHOD_ALL))
|
|
||||||
goto err;
|
|
||||||
ret = 1;
|
|
||||||
|
|
||||||
err:
|
|
||||||
if (!ret) {
|
|
||||||
TSerror(TS_R_COULD_NOT_SET_ENGINE);
|
|
||||||
ERR_asprintf_error_data("engine:%s", name);
|
|
||||||
}
|
|
||||||
ENGINE_free(e);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
LCRYPTO_ALIAS(TS_CONF_set_default_engine);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
TS_CONF_set_signer_cert(CONF *conf, const char *section, const char *cert,
|
TS_CONF_set_signer_cert(CONF *conf, const char *section, const char *cert,
|
||||||
TS_RESP_CTX *ctx)
|
TS_RESP_CTX *ctx)
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue