2021-02-17 15:56:36 +08:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2021-04-30 07:11:42 +08:00
|
|
|
PKCS12_gen_mac, PKCS12_setup_mac, PKCS12_set_mac,
|
2021-02-17 15:56:36 +08:00
|
|
|
PKCS12_verify_mac - Functions to create and manipulate a PKCS#12 structure
|
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
#include <openssl/pkcs12.h>
|
|
|
|
|
|
|
|
int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,
|
|
|
|
unsigned char *mac, unsigned int *maclen);
|
|
|
|
int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen);
|
|
|
|
int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen,
|
|
|
|
unsigned char *salt, int saltlen, int iter,
|
|
|
|
const EVP_MD *md_type);
|
|
|
|
int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt,
|
|
|
|
int saltlen, const EVP_MD *md_type);
|
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
|
|
|
PKCS12_gen_mac() generates an HMAC over the entire PKCS#12 object using the
|
2022-01-03 07:00:27 +08:00
|
|
|
supplied password along with a set of already configured parameters.
|
2021-02-17 15:56:36 +08:00
|
|
|
|
|
|
|
PKCS12_verify_mac() verifies the PKCS#12 object's HMAC using the supplied
|
|
|
|
password.
|
|
|
|
|
|
|
|
PKCS12_setup_mac() sets the MAC part of the PKCS#12 structure with the supplied
|
|
|
|
parameters.
|
|
|
|
|
|
|
|
PKCS12_set_mac() sets the MAC and MAC parameters into the PKCS#12 object.
|
|
|
|
|
|
|
|
I<pass> is the passphrase to use in the HMAC. I<salt> is the salt value to use,
|
|
|
|
I<iter> is the iteration count and I<md_type> is the message digest
|
|
|
|
function to use.
|
|
|
|
|
|
|
|
=head1 NOTES
|
|
|
|
|
|
|
|
If I<salt> is NULL then a suitable salt will be generated and used.
|
|
|
|
|
|
|
|
If I<iter> is 1 then an iteration count will be omitted from the PKCS#12
|
|
|
|
structure.
|
|
|
|
|
|
|
|
PKCS12_gen_mac(), PKCS12_verify_mac() and PKCS12_set_mac() make assumptions
|
|
|
|
regarding the encoding of the given passphrase. See L<passphrase-encoding(7)>
|
|
|
|
for more information.
|
|
|
|
|
|
|
|
=head1 RETURN VALUES
|
|
|
|
|
|
|
|
All functions return 1 on success and 0 if an error occurred.
|
|
|
|
|
|
|
|
=head1 CONFORMING TO
|
|
|
|
|
|
|
|
IETF RFC 7292 (L<https://tools.ietf.org/html/rfc7292>)
|
|
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
|
|
|
L<d2i_PKCS12(3)>,
|
|
|
|
L<PKCS12_create(3)>,
|
|
|
|
L<passphrase-encoding(7)>
|
|
|
|
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
2022-05-03 18:52:38 +08:00
|
|
|
Copyright 2021-2022 The OpenSSL Project Authors. All Rights Reserved.
|
2021-02-17 15:56:36 +08:00
|
|
|
|
|
|
|
Licensed under the Apache License 2.0 (the "License"). You may not use
|
|
|
|
this file except in compliance with the License. You can obtain a copy
|
|
|
|
in the file LICENSE in the source distribution or at
|
|
|
|
L<https://www.openssl.org/source/license.html>.
|
|
|
|
|
|
|
|
=cut
|