The current spec defines RepositoryProviderInfo as an struct.
Given that it has approximately 14 state members, I suggest we
redefine it as a valuetype simply on the grounds that it is more
easily modifiable in the future (using a valuetype will maintain
backward compatibility because we can extend it if needed). It
also means that implementations could provide supplementary
information without breaking interfaces or interoperability.
This is the current definition:
struct RepositoryProviderInfo
{
string standardDescription;
string standardVersion;
string productDescription;
string productVersion;
string productVendor;
PKI::CertificateInfoList supportedCertificates;
PKI::CRLInfoList supportedCRLs;
PKI::CertificateInfoList supportedCrossCertificates;
string user_attribute_name;
string ca_attribute_name;
string crl_attribute_name;
string certificatePair_attribute_name;
string deltaCRL_attribute_name;
string arl_attribute_name;
}
;
I propose we change this to:
valuetype RepositoryProviderInfo
{
public string standardDescription;
public string standardVersion;
public string productDescription;
public string productVersion;
public string productVendor;
public PKI::CertificateInfoList supportedCertificates;
public PKI::CRLInfoList supportedCRLs;
public PKI::CertificateInfoList supportedCrossCertificates;
public string user_attribute_name;
public string ca_attribute_name;
public string crl_attribute_name;
public string certificatePair_attribute_name;
public string deltaCRL_attribute_name;
public string arl_attribute_name;
}
;
The same case may apply for some of the other info types - but for the
moment I'm focussing on the repository interfaces - more question later!