Page 1 of 1

DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 14:17
by Ralph
Ich habe hier ein Problem, wenn ich den DKIM Key einer Domain via API abrufe, bekomme ich ein relativ unbrauchbares Format zurück, dkim_record und dkim_txt_record liefern dabei den gleichen Output.
Gibt es eine Möglichkeit nur den den eigentlichen DKIM Key zu bekommen ohne Formatiereungen und quotation?

Code: Select all

    $result_d2 = json_decode(curl_exec($curl_session_d2));
    curl_close($curl_session_d2 );
    $dkimid = $result_d2->dkim_record;
liefert fogenden Output zurück:

Code: Select all

default._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkSBx4YSWb9DIAK1rMYms+aPIK+AstoynfNoXIkZo7/dC1NxV2ZwddV/AO4vjAKD4FbEg+lqAHSPuQ5yjSCmw5igAwmpDf3sEKAQYIlEefuVc4Z2kW3kUyg1lu8xBIY2KcDBFDxBQB2eVs+hQU9cq7D+DdlUhLCUdLY4foxq753Rs6HhLvLQE/DFblQXQTlreH7wpuLEXEjWToKmLO" "latEiEV0hugb9/veN4XWp97JRJEJhwQHy4ZS/FPxA6Q8UKXSVycAZy1FmPW04vss3joYbK70T3FkPR73puXNFqU8oYb9djcmhIqDidkmiXOs07ufLDGj3o1/CiF+bJtKzEnxwIDAQAB" )
Die double quotes wie am Anfang k=rsa; " " und mittendrin " " sind dabei ein Problem zur Nutzung

Im Panel "DKIM value for web forms (e.g. Cloudflare)" gibt den korrekten DKIM Key aus:der für API Abfragen brauchbar ist:

Code: Select all

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkSBx4YSWb9DIAK1rMYms+aPIK+AstoynfNoXIkZo7/dC1NxV2ZwddV/AO4vjAKD4FbEg+lqAHSPuQ5yjSCmw5igAwmpDf3sEKAQYIlEefuVc4Z2kW3kUyg1lu8xBIY2KcDBFDxBQB2eVs+hQU9cq7D+DdlUhLCUdLY4foxq753Rs6HhLvLQE/DFblQXQTlreH7wpuLEXEjWToKmLOlatEiEV0hugb9/veN4XWp97JRJEJhwQHy4ZS/FPxA6Q8UKXSVycAZy1FmPW04vss3joYbK70T3FkPR73puXNFqU8oYb9djcmhIqDidkmiXOs07ufLDGj3o1/CiF+bJtKzEnxwIDAQAB
Hier finde ich leider keine Infos dazu um DKIM value for web forms abzurufen
https://app.swaggerhub.com/apis-docs/keyhelp/api/2.7

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 14:53
by Ralph
ich kann zwar zur Not diese doppelten double quotes mit str_replace rausnehmen, ich denke mal (hoffe) es werden wohl kaum Key Strings mit " " und Leerzeichen dazwischen generiert werden ... müsste ich derweil dann mauell kopieren

Code: Select all

str_replace('" "', '', $dkimkey);
aber die Abfrage sollte eigentlich direkt an einen externen PDNS Server gehen zum aktualisieren ...

und den Rest rausfiltern wird schwierig

Code: Select all

default._domainkey IN TXT ( "
der Abschluß hier z.b. könnte im String vorkommen

Code: Select all

" )

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 14:54
by 24unix
Ich glaube, ich verstehe da Problem nicht. Was spricht gegen:

Code: Select all

$dkimRecordNoQuotes = str_replace('"', '', $dkim_record);

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 15:00
by Ralph
24unix wrote: Sat 4. Nov 2023, 14:54 Ich glaube, ich verstehe da Problem nicht. Was spricht gegen:

Code: Select all

$dkimRecordNoQuotes = str_replace('"', '', $dkim_record);
Danke es spricht nichts dagegen, mache ich ja gerade (siehe oben) aber auch nichts dafür ...
das ganze sollte am Ende von einem PDNS Server verwurstet werden :mrgreen:

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 15:05
by 24unix
Ralph wrote: Sat 4. Nov 2023, 15:00
24unix wrote: Sat 4. Nov 2023, 14:54 Ich glaube, ich verstehe da Problem nicht. Was spricht gegen:

Code: Select all

$dkimRecordNoQuotes = str_replace('"', '', $dkim_record);
soweit nichts, mache ich ja gerade (siehe oben)
das ganze sollte aber am Ende von einem PDNS Server verwurstet werden :mrgreen:
Ja, die beiden Beiträge haben sich irgendwie überschnitten, ich habe Deinen 2. erst gesehen nachdem ich meinen abgeschickt habe.

Ich denke, Du kannst das ohne Probleme nehmen, im RSA Key werden nie Hochkomma oder Leerzeichen sein.

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 15:19
by Ralph
24unix wrote: Sat 4. Nov 2023, 15:05 Ich denke, Du kannst das ohne Probleme nehmen, im RSA Key werden nie Hochkomma oder Leerzeichen sein.
Danke Micha!
Du hast nicht zufällig noch eine Idee um diese Parts hier raus-zu-schneiden?
am anfang:

Code: Select all

default._domainkey IN TXT ( "
am Ende:

Code: Select all

" )
da könnten die beiden Quotes am Anfang und Ende auch bleiben, ist ja ein TXT Record, dann würde es passen für die automatisierten PDNS Updates ...

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 15:29
by 24unix
Ralph wrote: Sat 4. Nov 2023, 15:19
24unix wrote: Sat 4. Nov 2023, 15:05 Ich denke, Du kannst das ohne Probleme nehmen, im RSA Key werden nie Hochkomma oder Leerzeichen sein.
Danke Micha!
Du hast nicht zufällig noch eine Idee um diese Parts hier raus-zu-schneiden?
am anfang:

Code: Select all

default._domainkey IN TXT ( "
am Ende:

Code: Select all

" )
da könnten die beiden Quotes am Anfang und Ende auch bleiben, ist ja ein TXT Record, dann würde es passen für die automatisierten PDNS Updates ...
Entweder 2x str_replace oder mehr hipster mit einer RegEx:

Code: Select all

$dkimRecord = 'default._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkSBx4YSWb9DIAK1rMYms+aPIK+AstoynfNoXIkZo7/dC1NxV2ZwddV/AO4vjAKD4FbEg+lqAHSPuQ5yjSCmw5igAwmpDf3sEKAQYIlEefuVc4Z2kW3kUyg1lu8xBIY2KcDBFDxBQB2eVs+hQU9cq7D+DdlUhLCUdLY4foxq753Rs6HhLvLQE/DFblQXQTlreH7wpuLEXEjWToKmLOlatEiEV0hugb9/veN4XWp97JRJEJhwQHy4ZS/FPxA6Q8UKXSVycAZy1FmPW04vss3joYbK70T3FkPR73puXNFqU8oYb9djcmhIqDidkmiXOs07ufLDGj3o1/CiF+bJtKzEnxwIDAQAB" )';

// Remove everything except for the v=DKIM1; k=rsa; p=... part
$pattern = '/default\._domainkey IN TXT \( "v=DKIM1; k=rsa; " "p=([^"]+)" \)/';
$replacement = 'v=DKIM1; k=rsa; p=$1';
$cleanedDkimRecord = preg_replace($pattern, $replacement, $dkimRecord);

echo $cleanedDkimRecord;

Code: Select all

php t.php
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkSBx4YSWb9DIAK1rMYms+aPIK+AstoynfNoXIkZo7/dC1NxV2ZwddV/AO4vjAKD4FbEg+lqAHSPuQ5yjSCmw5igAwmpDf3sEKAQYIlEefuVc4Z2kW3kUyg1lu8xBIY2KcDBFDxBQB2eVs+hQU9cq7D+DdlUhLCUdLY4foxq753Rs6HhLvLQE/DFblQXQTlreH7wpuLEXEjWToKmLOlatEiEV0hugb9/veN4XWp97JRJEJhwQHy4ZS/FPxA6Q8UKXSVycAZy1FmPW04vss3joYbK70T3FkPR73puXNFqU8oYb9djcmhIqDidkmiXOs07ufLDGj3o1/CiF+bJtKzEnxwIDAQAB
Edit: Ich vermute, das ist ein bug in der API, es macht ja keine Sinn, dass die Ausgaben identisch sind:
SCR-20231104-nsnt.png

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 16:01
by Ralph
24unix wrote: Sat 4. Nov 2023, 15:29 // Remove everything except for the v=DKIM1; k=rsa; p=... part
$pattern = '/default\._domainkey IN TXT \( "v=DKIM1; k=rsa; " "p=([^"]+)" \)/';
$replacement = 'v=DKIM1; k=rsa; p=$1';
$cleanedDkimRecord = preg_replace($pattern, $replacement, $dkimRecord);
echo $cleanedDkimRecord;
[/code]

Danke, sehr cool gemacht!
Mit den Pattern hab ich noch Probleme, liegt wahrscheinlich am Smarty, ich schau gleich mal danach :D

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 16:13
by Ralph
24unix wrote: Sat 4. Nov 2023, 15:29 Edit: Ich vermute, das ist ein bug in der API, es macht ja keine Sinn, dass die Ausgaben identisch sind:
Super, läuft jetzt! :mrgreen:
Sieht für mich auch nach einem Bug aus, der Output macht so wenig Sinn, da ist vermutlich für den dkim_record eine Variable vertauscht oder fehlerhaft

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Sat 4. Nov 2023, 16:20
by 24unix
Ralph wrote: Sat 4. Nov 2023, 16:13
24unix wrote: Sat 4. Nov 2023, 15:29 Edit: Ich vermute, das ist ein bug in der API, es macht ja keine Sinn, dass die Ausgaben identisch sind:
Super, läuft jetzt! :mrgreen:
Freut mich :-)
Ralph wrote: Sat 4. Nov 2023, 16:13
Sieht für mich auch nach einem Bug aus, der Output macht so wenig Sinn, da ist vermutlich für den dkim_record eine Variable vertauscht oder fehlerhaft
Yap. Evtl. schreibt Alex am Montag was dazu.

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Mon 6. Nov 2023, 11:30
by Alexander
"dkim_txt_record" ist veraltet und sollte nicht mehr genutzt werden.
"dkim_record" ist der neue Feld-Name.

Auszug aus der API-Doku:
Bildschirmfoto vom 2023-11-06 11-26-56.png
---

DNS-Record-Values sind auf 256 Zeichen pro Block (In Anführungszeichen eingeschlossener Teil: "<BLOCK1>" "<BLOCK2>") beschränkt, deswegen ist der der Value des TXT Records in der Mitte geteilt.

Re: DKIM Key auslesen for web forms original ohne Formatierung?

Posted: Mon 6. Nov 2023, 15:33
by Ralph
Alexander wrote: Mon 6. Nov 2023, 11:30 DNS-Record-Values sind auf 256 Zeichen pro Block (In Anführungszeichen eingeschlossener Teil: "<BLOCK1>" "<BLOCK2>") beschränkt, deswegen ist der der Value des TXT Records in der Mitte geteilt.
Danke für die Info, dann werde ich den str_replace dafür schnell wieder rausnehmen ;-)
L.G.

Re: DKIM Key auslesen for web forms original ohne Formatierung?  [GELÖST]

Posted: Mon 6. Nov 2023, 16:22
by Alexander
Naja, es kommt natürlich drauf an, in welchem Format du die Daten benötigst.

Wenn es z.B. direkt in einer bind9 Konfigurationsdatei landen soll, dann sind die Blöcke zwingend notwendig. Wenn es an eine anderen Anwendung übergeben werden soll, dann kommt es darauf an, welche "Formate" diese andere Anwendung verarbeiten kann.