diff options
Diffstat (limited to 'src/account/LMI_AccountManagementCapabilitiesProvider.c')
-rw-r--r-- | src/account/LMI_AccountManagementCapabilitiesProvider.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/account/LMI_AccountManagementCapabilitiesProvider.c b/src/account/LMI_AccountManagementCapabilitiesProvider.c index 391b715..c6be6af 100644 --- a/src/account/LMI_AccountManagementCapabilitiesProvider.c +++ b/src/account/LMI_AccountManagementCapabilitiesProvider.c @@ -22,6 +22,7 @@ #include "macros.h" #include "globals.h" +#include "account_globals.h" #define NAME LAMCNAME @@ -57,6 +58,8 @@ static CMPIStatus LMI_AccountManagementCapabilitiesEnumInstances( const char** properties) { LMI_AccountManagementCapabilities lamc; + int size = 0; /* How many encrypt algorithms we have */ + int i = 0; LMI_AccountManagementCapabilities_Init(&lamc, _cb, KNameSpace(cop)); LMI_AccountManagementCapabilities_Set_ElementNameEditSupported( @@ -75,6 +78,19 @@ static CMPIStatus LMI_AccountManagementCapabilitiesEnumInstances( LMI_AccountManagementCapabilities_Init_SupportedUserPasswordEncryptionAlgorithms(&lamc, 1); LMI_AccountManagementCapabilities_Set_SupportedUserPasswordEncryptionAlgorithms(&lamc, 0, LMI_AccountManagementCapabilities_SupportedUserPasswordEncryptionAlgorithms_Other); + /* Count how many ecrypt algorithms we have */ + while(crypt_algs[size]) size++; + + /* Create a list of other supported password encrypt algorithms */ + if (size > 0) + { + LMI_AccountManagementCapabilities_Init_OtherSupportedUserPasswordEncryptionAlgorithms(&lamc, size); + for (i = 0; i < size; i++) + { + LMI_AccountManagementCapabilities_Set_OtherSupportedUserPasswordEncryptionAlgorithms(&lamc, i, crypt_algs[i]); + } + } + KReturnInstance(cr, lamc); CMReturn(CMPI_RC_OK); } |