servnest/reg/ds.php

111 lines
4.2 KiB
PHP

<?php include "../top.inc.php"; ?>
<form method="post">
<label for="zone">Domaine</label>
<br>
<select required="" name="zone" id="zone">
<option value="" disabled="" selected="">---</option>
<?php
$domains = regListUserDomains($_SESSION['username']);
if ($domains) {
foreach($domains as $domain) {
echo "<option value='" . $domain . "'>" . $domain . "</option>";
}
}
?>
</select>
<br>
<label for="keytag">Tag de la clé</label>
<br>
<input required="" id="keytag" placeholder="32768" min="1" max="65535" name="keytag" type="number"><span></span>
<br>
<label for="algo">Algorithme</label>
<br>
<select required="" name="algo" id="algo">
<!-- RFC 8624 : Algorithm Implementation Requirements and Usage Guidance for DNSSEC > Algorithm Selection > DNSKEY Algorithms -->
<!-- https://tools.ietf.org/html/rfc8624.html#section-3.1 -->
<option value="1" disabled="">1 (RSAMD5)</option>
<option value="3" disabled="">3 (DSA)</option>
<option value="5" disabled="">5 (RSASHA1)</option>
<option value="6" disabled="">6 (DSA-NSEC3-SHA1)</option>
<option value="7" disabled="">7 (RSASHA1-NSEC3-SHA1)</option>
<option value="8">8 (RSASHA256)</option>
<option value="10" disabled="">10 (RSASHA512)</option>
<option value="12" disabled="">12 (ECC-GOST)</option>
<option value="13">13 (ECDSAP256SHA256)</option>
<option value="14">14 (ECDSAP384SHA384)</option>
<option value="15" selected="">15 (ED25519)</option>
<option value="16">16 (ED448)</option>
</select>
<br>
<label for="dt">Type de condensat</label>
<br>
<select required="" name="dt" id="dt">
<!-- RFC 8624 : Algorithm Implementation Requirements and Usage Guidance for DNSSEC > Algorithm Selection > DS and CDS Algorithms -->
<!-- https://tools.ietf.org/html/rfc8624.html#section-3.3 -->
<option value="1" disabled="">1 (SHA-1)</option>
<option value="2" selected="">2 (SHA-256)</option>
<option value="3" disabled="">3 (GOST R 34.11-94)</option>
<option value="4">4 (SHA-384)</option>
</select>
<br>
<label for="key">Delegation Signer</label>
<br>
<input id="key" required="" name="key" type="text" placeholder="018F25E4A022463478C9E30136EC53771A1704A0F0B3CE5B883AC9C8A6A55D16B638B4DE70662ACA5295D3669E7CADD9">
<br>
<input value="Valider" type="submit">
</form>
<?php
if (isset($_POST['zone']) AND isset($_POST['keytag']) AND isset($_POST['algo']) AND isset($_POST['key']) AND isset($_SESSION['username'])) {
if (!($_POST['algo'] == "8")
AND !($_POST['algo'] == "13")
AND !($_POST['algo'] == "14")
AND !($_POST['algo'] == "15")
AND !($_POST['algo'] == "16")
)
exit("Incorrect value for algo");
$_POST['keytag'] = intval($_POST['keytag']);
if ((!preg_match("/^[0-9]{1,6}$/", $_POST['keytag'])) OR !($_POST['keytag'] >= 1) OR !($_POST['keytag'] <= 65535))
exit("Incorrect value for keytag");
if (!$_POST['dt'] == "2" AND !$_POST['dt'] == "4")
exit("Incorrect value for dt");
checkAbsoluteDomainFormat($_POST['zone']);
nsCheckZonePossession($_POST['zone']);
regCheckDomainPossession($_POST['zone']);
$suffix = regGetUpperDomain($_POST['zone']);
exec(KNOTC_PATH . " zone-begin " . $suffix);
exec(KNOTC_PATH . " zone-set " . $suffix . " " . $_POST['zone'] . " 86400 DS " . $_POST['keytag'] . " " . $_POST['algo'] . " " . $_POST['dt'] . " " . $_POST['key']);
exec(KNOTC_PATH . " zone-commit " . $suffix);
//secure.example. DS tag=12345 alg=3 digest_type=1 <foofoo>
echo "La requête a été envoyée à Knot";
/*
moomin3.atope.art. 0 DS 11168 13 1 D39D6B1ED58ECE9FA8AB6B7DB53E78338D45E2FF
moomin3.atope.art. 0 DS 11168 13 2 DB7C3B76CF40C1F7C0BF278AB46284BFEA5E7D44B382992E32BB5B3DC50BA7AB
moomin3.atope.art. 0 DS 11168 13 4 018F25E4A022463478C9E30136EC53771A1704A0F0B3CE5B883AC9C8A6A55D16B638B4DE70662ACA5295D3669E7CADD9
from rfc : secure.example. DS tag=12345 alg=3 digest_type=1 <foofoo>
*/
//exec("knotc zone-begin atope.art");
//exec("knotc zone-set atope.art " . $_POST['subdomain'] . ".atope.art. DS " . $_POST['ns'] . ".");
//exec("knotc zone-commit atope.art");
//echo "Modifications appliquées";
}
?>
<?php include "../bottom.inc.php"; ?>