From 2d4009673def5e4963bb0f9b4ff8a5f5076067f1 Mon Sep 17 00:00:00 2001
From: Davide Vaghetti <davide.vaghetti@garr.it>
Date: Tue, 13 Apr 2021 17:35:25 +0200
Subject: [PATCH] First attempt to add registrar

---
 entities_security_contacts.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/entities_security_contacts.py b/entities_security_contacts.py
index d718fde..7529230 100755
--- a/entities_security_contacts.py
+++ b/entities_security_contacts.py
@@ -25,7 +25,8 @@ ns = {
     'mdui': 'urn:oasis:names:tc:SAML:metadata:ui',
     'shibmd': 'urn:mace:shibboleth:metadata:1.0',
     'remd': 'http://refeds.org/metadata',
-    'icmd': 'http://id.incommon.org/metadata'
+    'icmd': 'http://id.incommon.org/metadata',
+    'mdrpi': 'urn:oasis:names:tc:SAML:2.0:metadata:rpi',
 }
 
 
@@ -33,6 +34,13 @@ entities = root.findall('./md:EntityDescriptor', ns)
 
 for entity in entities:
     sec_mails = set()
+
+    registration_authority = ''
+    registration_info = entity.find('./mdrpi:RegistrationInfo', ns)
+    if not registration_info:
+        continue
+    else:
+        registration_authority = registration_info.attrib['RegistrationAuthority']
     orgname = entity.find('./md:Organization/md:OrganizationDisplayName', ns).text.strip()
     if not orgname:
         continue
@@ -62,7 +70,7 @@ for entity in entities:
         for mail in sec_mails:
             if (domain,mail) not in seen_doms_mails:
                 seen_doms_mails.add((domain, mail))
-                contacts.add('{},{},{}'.format(domain, mail, orgname))
+                contacts.add('{},{},{}'.format(domain, mail, orgname, registration_authority))
 
 for contact in sorted(contacts):
     print(contact)
-- 
GitLab