1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

Add SSHFP DNS record support. (#439)

* Add SSHFP DNS record support.
* Fix integration test.
This commit is contained in:
karlism
2019-01-28 23:26:20 +01:00
committed by Tom Limoncelli
parent f96a2189a1
commit f9fc6243d4
13 changed files with 183 additions and 3 deletions

View File

@@ -235,6 +235,22 @@ var SRV = recordBuilder('SRV', {
},
});
// SSHFP(name,algorithm,type,value, recordModifiers...)
var SSHFP = recordBuilder('SSHFP', {
args: [
['name', _.isString],
['algorithm', _.isNumber],
['fingerprint', _.isNumber],
['value', _.isString],
],
transform: function(record, args, modifiers) {
record.name = args.name;
record.sshfpalgorithm = args.algorithm;
record.sshfpfingerprint = args.fingerprint;
record.target = args.value;
},
});
// name, usage, selector, matchingtype, certificate
var TLSA = recordBuilder('TLSA', {
args: [

View File

@@ -0,0 +1,10 @@
D("foo.com","none",
SSHFP("@",1,1,"66c7d5540b7d75a1fb4c84febfa178ad99bdd67c"),
SSHFP("@",1,2,"745a635bc46a397a5c4f21d437483005bcc40d7511ff15fbfafe913a081559bc"),
SSHFP("@",2,1,"66c7d5540b7d75a1fb4c84febfa178ad99bdd67c"),
SSHFP("@",2,2,"745a635bc46a397a5c4f21d437483005bcc40d7511ff15fbfafe913a081559bc"),
SSHFP("@",3,1,"66c7d5540b7d75a1fb4c84febfa178ad99bdd67c"),
SSHFP("@",3,2,"745a635bc46a397a5c4f21d437483005bcc40d7511ff15fbfafe913a081559bc"),
SSHFP("@",4,1,"66c7d5540b7d75a1fb4c84febfa178ad99bdd67c"),
SSHFP("@",4,2,"745a635bc46a397a5c4f21d437483005bcc40d7511ff15fbfafe913a081559bc")
);

View File

@@ -0,0 +1,61 @@
{
"registrars": [],
"dns_providers": [],
"domains": [
{
"name": "foo.com",
"registrar": "none",
"dnsProviders": {},
"records": [
{
"type": "SSHFP",
"algorithm": 1,
"fingerprint": 1,
"value": "66c7d5540b7d75a1fb4c84febfa178ad99bdd67c"
},
{
"type": "SSHFP",
"algorithm": 1,
"fingerprint": 2,
"value": "745a635bc46a397a5c4f21d437483005bcc40d7511ff15fbfafe913a081559bc"
},
{
"type": "SSHFP",
"algorithm": 2,
"fingerprint": 1,
"value": "66c7d5540b7d75a1fb4c84febfa178ad99bdd67c"
},
{
"type": "SSHFP",
"algorithm": 2,
"fingerprint": 2,
"value": "745a635bc46a397a5c4f21d437483005bcc40d7511ff15fbfafe913a081559bc"
},
{
"type": "SSHFP",
"algorithm": 3,
"fingerprint": 1,
"value": "66c7d5540b7d75a1fb4c84febfa178ad99bdd67c"
},
{
"type": "SSHFP",
"algorithm": 3,
"fingerprint": 2,
"value": "745a635bc46a397a5c4f21d437483005bcc40d7511ff15fbfafe913a081559bc"
},
{
"type": "SSHFP",
"algorithm": 4,
"fingerprint": 1,
"value": "66c7d5540b7d75a1fb4c84febfa178ad99bdd67c"
},
{
"type": "SSHFP",
"algorithm": 4,
"fingerprint": 2,
"value": "745a635bc46a397a5c4f21d437483005bcc40d7511ff15fbfafe913a081559bc"
}
]
}
]
}

View File

@@ -58,6 +58,7 @@ func validateRecordTypes(rec *models.RecordConfig, domain string, pTypes []strin
"IMPORT_TRANSFORM": false,
"MX": true,
"SRV": true,
"SSHFP": true,
"TXT": true,
"NS": true,
"PTR": true,
@@ -160,7 +161,7 @@ func checkTargets(rec *models.RecordConfig, domain string) (errs []error) {
check(checkTarget(target))
case "SRV":
check(checkTarget(target))
case "TXT", "IMPORT_TRANSFORM", "CAA", "TLSA":
case "TXT", "IMPORT_TRANSFORM", "CAA", "SSHFP", "TLSA":
default:
if rec.Metadata["orig_custom_type"] != "" {
// it is a valid custom type. We perform no validation on target