sss_certmap_attr_names.c revision a20fb9cbd5f42a6ca895aea1b84347fdfea34b89
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen Library for rule based certificate to user mapping - Attribute name
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen mapping for different implementations
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen Sumit Bose <sbose@redhat.com>
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen Copyright (C) 2017 Red Hat
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen This program is free software; you can redistribute it and/or modify
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen it under the terms of the GNU General Public License as published by
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen the Free Software Foundation; either version 3 of the License, or
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen (at your option) any later version.
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen This program is distributed in the hope that it will be useful,
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen but WITHOUT ANY WARRANTY; without even the implied warranty of
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen GNU General Public License for more details.
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen You should have received a copy of the GNU General Public License
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen along with this program. If not, see <http://www.gnu.org/licenses/>.
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen/* NSS data taken from nss-utils:nss/lib/util/secoid.c and
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen/* AD data taken from
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen * https://msdn.microsoft.com/en-us/library/windows/desktop/aa376556%28v=vs.85%29.aspx
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen * and wine source code dlls/crypt32/oid.c and include/wincrypt.h . */
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen/* OpenSSL data taken from include/openssl/obj_mac.h */
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen const char *oid;
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen const char *nss;
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen const char *ad;
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { false, false, "2.5.4.11", "OU", "OU", "OU"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { false, false, "2.5.4.46", "dnQualifier", "dnQualifier", "dnQualifier"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.5", "serialNumber", "SERIALNUMBER", "serialNumber"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.12", "title", "T", "title"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, true, "2.5.4.42", "givenName", "G", "GN"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.43", "initials", "I", "initials"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.44", "generationQualifier", "OID.2.5.4.44", "generationQualifier"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { false, false, "0.9.2342.19200300.100.1.25", "DC", "DC", "DC"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, true, "0.9.2342.19200300.100.1.3", "MAIL", "OID,0.9.2342.19200300.100.1.3", "mail"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "0.9.2342.19200300.100.1.1", "UID", "OID.0.9.2342.19200300.100.1.1", "UID"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, true, "2.5.4.13", "OID.2.5.4.13", "Description", "description"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.16", "postalAddress", "OID.2.5.4.16", "postalAddress"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.17", "postalCode", "PostalCode", "postalCode"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.18", "postOfficeBox", "POBox", "postOfficeBox"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.51", "houseIdentifier", "OID.2.5.4.51", "houseIdentifier"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { false, true, "1.2.840.113549.1.9.1", "E", "E", "emailAddress"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { false, true, "2.5.4.9", "STREET", "STREET", "street"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.65", "pseudonym", "OID.2.5.4.65", "pseudonym"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.15", "businessCategory", "OID.2.5.4.15", "businessCategory"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen { true, false, "2.5.4.41", "name", "OID.2.5.4.41", "name"},
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainenchar *check_ad_attr_name(TALLOC_CTX *mem_ctx, const char *rdn)
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen for (c = 0; oid_attr_name_map[c].oid != NULL; c++) {
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen || strncmp(rdn, oid_attr_name_map[c].nss, len) != 0) {
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen return talloc_asprintf(mem_ctx, "%s%s", oid_attr_name_map[c].ad, p);
dcd50ecbfe796bd76f2d63483c534cc0e4e94164Timo Sirainenconst char *openssl_2_nss_attr_name(const char *attr)
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen for (c = 0; oid_attr_name_map[c].oid != NULL; c++) {
1795e934ebcd58175d3b5bbdd811b13c7889efa3Timo Sirainen if (!oid_attr_name_map[c].nss_openssl_differ) {