The Question is:
I have been asked to modify our utility for changing users passwords (Using
include checking of password histories.
I know that the SET PASSWORD command performs
this checking but can find no system service which will enable me to do this.
Does such a function exist
The Answer is :
There is no documented nor supported API for checking the password
history in the specified OpenVMS release, though the sys$acm system
service available in more recent OpenVMS releases provides a general
user and password authentication interface.
For details on sys$acm, see current OpenVMS programming materials.
For older releases, the (undocumented) sequence looks like this:
IF NOT .UAFBUF[UAF$V_DISPWDHIS] AND
NOT .FLAGS[QUAL_GENERATE] AND
NOT .FLAGS[QUAL_SYSTEM] AND
NOT .FLAGS[EXT_AUTH] AND
(.HASH NEQ 0 OR .HASH NEQ 0)
STATUS = EXE$LOOKUP_HASH (HASH, .USERNAME);
HASH: address of quadword password hash
USERNAME: address of username string descriptor
You may well end up linking against the executive to use this call.
(This call is not supported, and is subject to change without notice.)
You will want to acquire the OpenVMS Source Listings Kit (see the FAQ
for part numbers), and you will want to check the new features lists
for future OpenVMS releases.