diff options
author | Hans Nilsson <[email protected]> | 2019-01-31 10:27:23 +0100 |
---|---|---|
committer | Hans Nilsson <[email protected]> | 2019-02-25 10:01:24 +0100 |
commit | c7cab680b80ef9220832151ed2c8c23a5d590b8b (patch) | |
tree | c197e1682ecdea385f93b5bbeee540e444b84e06 /lib/crypto/c_src/api_ng.h | |
parent | b3dbf45fdbe8c584c89b5e061f6e9a28a5d3ea86 (diff) | |
download | otp-c7cab680b80ef9220832151ed2c8c23a5d590b8b.tar.gz otp-c7cab680b80ef9220832151ed2c8c23a5d590b8b.tar.bz2 otp-c7cab680b80ef9220832151ed2c8c23a5d590b8b.zip |
crypto: New experimental api
The new files api_ng.h and api_ng.c implements an api using EVP.
The api is not by any mean new, except for the crypto application
in Erlang/OTP.
The aims at using the block api in a stream manor, that is
1) call crypto_init/4
2..N) call crypto_update/{2,3}
The purpose is to simplify and hopefully optimize the SSL and SSH
applications.
By keeping the crypto state in C in an enif_resource the costful state
copying in SSL and SSH is reduced with 1-2 per message sent or received.
Changes in other files are for adaptation like FIPS etc since many
functions uses the central get_cipher_type() function.
Diffstat (limited to 'lib/crypto/c_src/api_ng.h')
-rw-r--r-- | lib/crypto/c_src/api_ng.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/crypto/c_src/api_ng.h b/lib/crypto/c_src/api_ng.h new file mode 100644 index 0000000000..a3b40fe7fc --- /dev/null +++ b/lib/crypto/c_src/api_ng.h @@ -0,0 +1,29 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2010-2018. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * %CopyrightEnd% + */ + +#ifndef E_API_NG_H__ +#define E_API_NG_H__ 1 + +#include "common.h" + +ERL_NIF_TERM ng_crypto_init_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]); +ERL_NIF_TERM ng_crypto_update_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]); + +#endif /* E_AES_H__ */ |