/// EFI_BIS_VERSION type.\r
///\r
typedef struct {\r
- UINT32 Major; ///< BIS Interface version number.\r
- UINT32 Minor; ///< Build number.\r
+ UINT32 Major; ///< the major BIS version number.\r
+ UINT32 Minor; ///< a minor BIS version number.\r
} EFI_BIS_VERSION;\r
\r
//\r
interface version desired. \r
On output, both the major and minor \r
version numbers are updated with the major and minor version\r
- numbers of the interface \r
+ numbers of the interface. This update is done whether or not the\r
+ initialization was successful. \r
@param TargetAddress Indicates a network or device address of the BIS platform to connect to. \r
\r
@retval EFI_SUCCESS The function completed successfully.\r
@retval EFI_INCOMPATIBLE_VERSION The InterfaceVersion.Major requested by the \r
caller was not compatible with the interface version of the\r
+ implementation. The InterfaceVersion.Major has\r
+ been updated with the current interface version.\r
@retval EFI_UNSUPPORTED This is a local-platform implementation and \r
TargetAddress.Data was not NULL, or \r
TargetAddress.Data was any other value that was not\r
supported by the implementation. \r
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources. \r
- @retval EFI_DEVICE_ERROR The function encountered an unexpected internal failure.\r
- @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+ @retval EFI_DEVICE_ERROR The function encountered an unexpected internal failure while\r
+ initializing a cryptographic software module, or\r
+ No cryptographic software module with compatible version was\r
+ found, or A resource limitation was encountered while using a\r
+ cryptographic software module.\r
+ @retval EFI_INVALID_PARAMETER The This parameter supplied by the caller is NULL or does not\r
+ reference a valid EFI_BIS_PROTOCOL object, or\r
+ The AppHandle parameter supplied by the caller is NULL or\r
+ an invalid memory reference, or\r
+ The InterfaceVersion parameter supplied by the caller\r
+ is NULL or an invalid memory reference, or\r
+ The TargetAddress parameter supplied by the caller is\r
+ NULL or an invalid memory reference.\r
\r
**/ \r
typedef\r
\r
@param AppHandle An opaque handle that identifies the caller's instance of initialization\r
of the BIS service. \r
- @param ToFree An EFI_BIS_DATA* and associated memory block to be freed.\r
+ @param ToFree An EFI_BIS_DATA* and associated memory block to be freed. \r
+ This EFI_BIS_DATA* must have been allocated by one of the other BIS functions.\r
\r
@retval EFI_SUCCESS The function completed successfully.\r
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid\r
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid\r
application instance handle associated with the EFI_BIS protocol. \r
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources. \r
- @retval EFI_DEVICE_ERROR The function encountered an unexpected internal failure. \r
- \r
-**/ \r
+ @retval EFI_DEVICE_ERROR The function encountered an unexpected internal failure while\r
+ returning resources associated with a cryptographic software module, or\r
+ while trying to shut down a cryptographic software module.\r
+**/\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_BIS_SHUTDOWN)(\r
@param AppHandle An opaque handle that identifies the caller's instance of initialization\r
of the BIS service. \r
@param Certificate The function writes an allocated EFI_BIS_DATA* containing the Boot\r
- Object Authorization Certificate object. \r
+ Object Authorization Certificate object. The caller must\r
+ eventually free the memory allocated by this function using the function Free().\r
\r
@retval EFI_SUCCESS The function completed successfully.\r
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid\r
@param AppHandle An opaque handle that identifies the caller's instance of initialization\r
of the BIS service. \r
@param UpdateToken The function writes an allocated EFI_BIS_DATA* containing the new\r
- unique update token value. \r
+ unique update token value. The caller must\r
+ eventually free the memory allocated by this function using the function Free().\r
\r
@retval EFI_SUCCESS The function completed successfully.\r
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid\r
@param RequestCredential This is a Signed Manifest with embedded attributes that carry the details\r
of the requested update. \r
@param NewUpdateToken The function writes an allocated EFI_BIS_DATA* containing the new \r
- unique update token value. \r
+ unique update token value. The caller must\r
+ eventually free the memory allocated by this function using the function Free().\r
\r
@retval EFI_SUCCESS The function completed successfully. \r
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid \r
@retval EFI_INVALID_PARAMETER One or more parameters are invalid. \r
@retval EFI_SECURITY_VIOLATION The signed manifest supplied as the RequestCredential parameter \r
was invalid (could not be parsed) or Platform-specific authorization failed, etc. \r
- @retval EFI_DEVICE_ERROR An unexpected internal error occurred. \r
+ @retval EFI_DEVICE_ERROR An unexpected internal error occurred while analyzing the new\r
+ certificate's key algorithm, or while attempting to retrieve\r
+ the public key algorithm of the manifest's signer's certificate,\r
+ or An unexpected internal error occurred in a cryptographic software module. \r
\r
**/ \r
typedef\r
or the AuthorityCertificate supplied by the caller was \r
invalid (could not be parsed), \r
or Platform-specific authorization failed, etc. \r
- @retval EFI_DEVICE_ERROR An unexpected internal error occurred. \r
- \r
+ @retval EFI_DEVICE_ERROR An unexpected internal error occurred while attempting to retrieve\r
+ the public key algorithm of the manifest¡¯s signer¡¯s certificate,\r
+ or An unexpected internal error occurred in a cryptographic software module. \r
**/ \r
typedef\r
EFI_STATUS\r
/** \r
Retrieves a list of digital certificate identifier, digital signature algorithm, hash algorithm, and keylength\r
combinations that the platform supports. \r
- \r
+\r
@param AppHandle An opaque handle that identifies the caller's instance of initialization\r
of the BIS service. \r
@param SignatureInfo The function writes an allocated EFI_BIS_DATA* containing the array\r
of EFI_BIS_SIGNATURE_INFO structures representing the supported \r
- digital certificate identifier, algorithm, and key length combinations. \r
- \r
+ digital certificate identifier, algorithm, and key length combinations.\r
+ The caller must eventually free the memory allocated by this function using the function Free().\r
+\r
@retval EFI_SUCCESS The function completed successfully. \r
@retval EFI_NO_MAPPING The AppHandle parameter is not or is no longer a valid \r
application instance handle associated with the EFI_BIS protocol. \r
@retval EFI_OUT_OF_RESOURCES The function failed due to lack of memory or other resources. \r
@retval EFI_INVALID_PARAMETER The SignatureInfo parameter supplied by the caller is NULL\r
- or an invalid memory reference. \r
- @retval EFI_DEVICE_ERROR An unexpected internal error occurred. \r
- \r
+ or an invalid memory reference.\r
+ @retval EFI_DEVICE_ERROR An unexpected internal error occurred in a\r
+ cryptographic software module, or\r
+ The function encountered an unexpected internal consistency check\r
+ failure (possible corruption of stored Boot Object Authorization Certificate).\r
+\r
**/\r
typedef\r
EFI_STATUS\r