use of com.sun.jna.platform.win32.Sspi.PSecPkgInfo in project jna by java-native-access.
the class Secur32Util method getSecurityPackages.
/**
* Get the security packages installed on the current computer.
* @return
* An array of SSPI security packages.
*/
public static SecurityPackage[] getSecurityPackages() {
IntByReference pcPackages = new IntByReference();
PSecPkgInfo pPackageInfo = new PSecPkgInfo();
int rc = Secur32.INSTANCE.EnumerateSecurityPackages(pcPackages, pPackageInfo);
if (W32Errors.SEC_E_OK != rc) {
throw new Win32Exception(rc);
}
SecPkgInfo[] packagesInfo = pPackageInfo.toArray(pcPackages.getValue());
ArrayList<SecurityPackage> packages = new ArrayList<SecurityPackage>(pcPackages.getValue());
for (SecPkgInfo packageInfo : packagesInfo) {
SecurityPackage securityPackage = new SecurityPackage();
securityPackage.name = packageInfo.Name.toString();
securityPackage.comment = packageInfo.Comment.toString();
packages.add(securityPackage);
}
rc = Secur32.INSTANCE.FreeContextBuffer(pPackageInfo.pPkgInfo.getPointer());
if (W32Errors.SEC_E_OK != rc) {
throw new Win32Exception(rc);
}
return packages.toArray(new SecurityPackage[0]);
}
Aggregations