|  | =pod | 
|  |  | 
|  | =begin comment | 
|  |  | 
|  | This is a recommended way to describe OSSL_STORE loaders, | 
|  | "ossl_store-{name}", where {name} is replaced with the name of the | 
|  | scheme it implements, in man section 7. | 
|  |  | 
|  | =end comment | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | ossl_store-file - The store 'file' scheme loader | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | =for openssl generic | 
|  |  | 
|  | #include <openssl/store.h> | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | Support for the 'file' scheme is built into C<libcrypto>. | 
|  | Since files come in all kinds of formats and content types, the 'file' | 
|  | scheme has its own layer of functionality called "file handlers", | 
|  | which are used to try to decode diverse types of file contents. | 
|  |  | 
|  | In case a file is formatted as PEM, each called file handler receives | 
|  | the PEM name (everything following any 'C<-----BEGIN >') as well as | 
|  | possible PEM headers, together with the decoded PEM body.  Since PEM | 
|  | formatted files can contain more than one object, the file handlers | 
|  | are called upon for each such object. | 
|  |  | 
|  | If the file isn't determined to be formatted as PEM, the content is | 
|  | loaded in raw form in its entirety and passed to the available file | 
|  | handlers as is, with no PEM name or headers. | 
|  |  | 
|  | Each file handler is expected to handle PEM and non-PEM content as | 
|  | appropriate.  Some may refuse non-PEM content for the sake of | 
|  | determinism (for example, there are keys out in the wild that are | 
|  | represented as an ASN.1 OCTET STRING.  In raw form, it's not easily | 
|  | possible to distinguish those from any other data coming as an ASN.1 | 
|  | OCTET STRING, so such keys would naturally be accepted as PEM files | 
|  | only). | 
|  |  | 
|  | =head1 NOTES | 
|  |  | 
|  | When needed, the 'file' scheme loader will require a pass phrase by | 
|  | using the B<UI_METHOD> that was passed via OSSL_STORE_open(). | 
|  | This pass phrase is expected to be UTF-8 encoded, anything else will | 
|  | give an undefined result. | 
|  | The files made accessible through this loader are expected to be | 
|  | standard compliant with regards to pass phrase encoding. | 
|  | Files that aren't should be re-generated with a correctly encoded pass | 
|  | phrase. | 
|  | See L<passphrase-encoding(7)> for more information. | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<ossl_store(7)>, L<passphrase-encoding(7)> | 
|  |  | 
|  | =head1 COPYRIGHT | 
|  |  | 
|  | Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. | 
|  |  | 
|  | 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 |