mirror of
https://blitiri.com.ar/repos/chasquid
synced 2026-10-28 15:02:28 +00:00
tlsconst: Deprecate in favour of stdlib's tls
The tlsconst internal package was created to provide human-readable names for TLS versions and ciphers, from the IANA registry. These days, that functionality is provided by stdlib's tls package, so the internal package is no longer needed, and this patch removes it. The only observable change is that the descriptive version in the Received header now says "TLS 1.3" instead of "TLS-1.3", but it's just as standard-compliant since that is in a free-form text section.
This commit is contained in:
@@ -62,8 +62,7 @@ fmt:
|
|||||||
black -l 79 \
|
black -l 79 \
|
||||||
test/util/check-hostaliases \
|
test/util/check-hostaliases \
|
||||||
test/util/chamuyero \
|
test/util/chamuyero \
|
||||||
test/util/mail_diff \
|
test/util/mail_diff
|
||||||
internal/tlsconst/generate-ciphers.py
|
|
||||||
|
|
||||||
.PHONY: chasquid test \
|
.PHONY: chasquid test \
|
||||||
chasquid-util smtp-check mda-lmtp dovecot-auth-cli \
|
chasquid-util smtp-check mda-lmtp dovecot-auth-cli \
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"blitiri.com.ar/go/chasquid/internal/sts"
|
"blitiri.com.ar/go/chasquid/internal/sts"
|
||||||
"blitiri.com.ar/go/chasquid/internal/tlsconst"
|
|
||||||
"blitiri.com.ar/go/spf"
|
"blitiri.com.ar/go/spf"
|
||||||
|
|
||||||
"golang.org/x/net/idna"
|
"golang.org/x/net/idna"
|
||||||
@@ -105,8 +104,8 @@ func main() {
|
|||||||
errs = append(errs, fmt.Errorf("%s: TLS failed", mx.Host))
|
errs = append(errs, fmt.Errorf("%s: TLS failed", mx.Host))
|
||||||
} else {
|
} else {
|
||||||
cstate, _ := c.TLSConnectionState()
|
cstate, _ := c.TLSConnectionState()
|
||||||
log.Printf("TLS OK: %s - %s", tlsconst.VersionName(cstate.Version),
|
log.Printf("TLS OK: %s - %s", tls.VersionName(cstate.Version),
|
||||||
tlsconst.CipherSuiteName(cstate.CipherSuite))
|
tls.CipherSuiteName(cstate.CipherSuite))
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Close()
|
c.Close()
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ import (
|
|||||||
"blitiri.com.ar/go/chasquid/internal/normalize"
|
"blitiri.com.ar/go/chasquid/internal/normalize"
|
||||||
"blitiri.com.ar/go/chasquid/internal/queue"
|
"blitiri.com.ar/go/chasquid/internal/queue"
|
||||||
"blitiri.com.ar/go/chasquid/internal/set"
|
"blitiri.com.ar/go/chasquid/internal/set"
|
||||||
"blitiri.com.ar/go/chasquid/internal/tlsconst"
|
|
||||||
"blitiri.com.ar/go/chasquid/internal/trace"
|
"blitiri.com.ar/go/chasquid/internal/trace"
|
||||||
"blitiri.com.ar/go/spf"
|
"blitiri.com.ar/go/spf"
|
||||||
)
|
)
|
||||||
@@ -773,12 +772,12 @@ func (c *Conn) addReceivedHeader() {
|
|||||||
if c.tlsConnState != nil {
|
if c.tlsConnState != nil {
|
||||||
// https://tools.ietf.org/html/rfc8314#section-4.3
|
// https://tools.ietf.org/html/rfc8314#section-4.3
|
||||||
received += fmt.Sprintf("tls %s\n",
|
received += fmt.Sprintf("tls %s\n",
|
||||||
tlsconst.CipherSuiteName(c.tlsConnState.CipherSuite))
|
tls.CipherSuiteName(c.tlsConnState.CipherSuite))
|
||||||
}
|
}
|
||||||
|
|
||||||
received += fmt.Sprintf("(over %s, ", c.mode)
|
received += fmt.Sprintf("(over %s, ", c.mode)
|
||||||
if c.tlsConnState != nil {
|
if c.tlsConnState != nil {
|
||||||
received += fmt.Sprintf("%s, ", tlsconst.VersionName(c.tlsConnState.Version))
|
received += fmt.Sprintf("%s, ", tls.VersionName(c.tlsConnState.Version))
|
||||||
} else {
|
} else {
|
||||||
received += "plain text!, "
|
received += "plain text!, "
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,360 +0,0 @@
|
|||||||
package tlsconst
|
|
||||||
|
|
||||||
// AUTOGENERATED - DO NOT EDIT
|
|
||||||
//
|
|
||||||
// This file was autogenerated by generate-ciphers.py.
|
|
||||||
|
|
||||||
var cipherSuiteName = map[uint16]string{
|
|
||||||
0x0000: "TLS_NULL_WITH_NULL_NULL",
|
|
||||||
0x0001: "TLS_RSA_WITH_NULL_MD5",
|
|
||||||
0x0002: "TLS_RSA_WITH_NULL_SHA",
|
|
||||||
0x0003: "TLS_RSA_EXPORT_WITH_RC4_40_MD5",
|
|
||||||
0x0004: "TLS_RSA_WITH_RC4_128_MD5",
|
|
||||||
0x0005: "TLS_RSA_WITH_RC4_128_SHA",
|
|
||||||
0x0006: "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5",
|
|
||||||
0x0007: "TLS_RSA_WITH_IDEA_CBC_SHA",
|
|
||||||
0x0008: "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
|
||||||
0x0009: "TLS_RSA_WITH_DES_CBC_SHA",
|
|
||||||
0x000a: "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x000b: "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA",
|
|
||||||
0x000c: "TLS_DH_DSS_WITH_DES_CBC_SHA",
|
|
||||||
0x000d: "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x000e: "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
|
||||||
0x000f: "TLS_DH_RSA_WITH_DES_CBC_SHA",
|
|
||||||
0x0010: "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x0011: "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
|
|
||||||
0x0012: "TLS_DHE_DSS_WITH_DES_CBC_SHA",
|
|
||||||
0x0013: "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x0014: "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
|
|
||||||
0x0015: "TLS_DHE_RSA_WITH_DES_CBC_SHA",
|
|
||||||
0x0016: "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x0017: "TLS_DH_anon_EXPORT_WITH_RC4_40_MD5",
|
|
||||||
0x0018: "TLS_DH_anon_WITH_RC4_128_MD5",
|
|
||||||
0x0019: "TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
|
|
||||||
0x001a: "TLS_DH_anon_WITH_DES_CBC_SHA",
|
|
||||||
0x001b: "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x001e: "TLS_KRB5_WITH_DES_CBC_SHA",
|
|
||||||
0x001f: "TLS_KRB5_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x0020: "TLS_KRB5_WITH_RC4_128_SHA",
|
|
||||||
0x0021: "TLS_KRB5_WITH_IDEA_CBC_SHA",
|
|
||||||
0x0022: "TLS_KRB5_WITH_DES_CBC_MD5",
|
|
||||||
0x0023: "TLS_KRB5_WITH_3DES_EDE_CBC_MD5",
|
|
||||||
0x0024: "TLS_KRB5_WITH_RC4_128_MD5",
|
|
||||||
0x0025: "TLS_KRB5_WITH_IDEA_CBC_MD5",
|
|
||||||
0x0026: "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
|
|
||||||
0x0027: "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA",
|
|
||||||
0x0028: "TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
|
|
||||||
0x0029: "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
|
|
||||||
0x002a: "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5",
|
|
||||||
0x002b: "TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
|
|
||||||
0x002c: "TLS_PSK_WITH_NULL_SHA",
|
|
||||||
0x002d: "TLS_DHE_PSK_WITH_NULL_SHA",
|
|
||||||
0x002e: "TLS_RSA_PSK_WITH_NULL_SHA",
|
|
||||||
0x002f: "TLS_RSA_WITH_AES_128_CBC_SHA",
|
|
||||||
0x0030: "TLS_DH_DSS_WITH_AES_128_CBC_SHA",
|
|
||||||
0x0031: "TLS_DH_RSA_WITH_AES_128_CBC_SHA",
|
|
||||||
0x0032: "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
|
|
||||||
0x0033: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
|
|
||||||
0x0034: "TLS_DH_anon_WITH_AES_128_CBC_SHA",
|
|
||||||
0x0035: "TLS_RSA_WITH_AES_256_CBC_SHA",
|
|
||||||
0x0036: "TLS_DH_DSS_WITH_AES_256_CBC_SHA",
|
|
||||||
0x0037: "TLS_DH_RSA_WITH_AES_256_CBC_SHA",
|
|
||||||
0x0038: "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
|
|
||||||
0x0039: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
|
|
||||||
0x003a: "TLS_DH_anon_WITH_AES_256_CBC_SHA",
|
|
||||||
0x003b: "TLS_RSA_WITH_NULL_SHA256",
|
|
||||||
0x003c: "TLS_RSA_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x003d: "TLS_RSA_WITH_AES_256_CBC_SHA256",
|
|
||||||
0x003e: "TLS_DH_DSS_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x003f: "TLS_DH_RSA_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x0040: "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x0041: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA",
|
|
||||||
0x0042: "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA",
|
|
||||||
0x0043: "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA",
|
|
||||||
0x0044: "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA",
|
|
||||||
0x0045: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA",
|
|
||||||
0x0046: "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA",
|
|
||||||
0x0067: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x0068: "TLS_DH_DSS_WITH_AES_256_CBC_SHA256",
|
|
||||||
0x0069: "TLS_DH_RSA_WITH_AES_256_CBC_SHA256",
|
|
||||||
0x006a: "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256",
|
|
||||||
0x006b: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256",
|
|
||||||
0x006c: "TLS_DH_anon_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x006d: "TLS_DH_anon_WITH_AES_256_CBC_SHA256",
|
|
||||||
0x0084: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA",
|
|
||||||
0x0085: "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA",
|
|
||||||
0x0086: "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA",
|
|
||||||
0x0087: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA",
|
|
||||||
0x0088: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA",
|
|
||||||
0x0089: "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA",
|
|
||||||
0x008a: "TLS_PSK_WITH_RC4_128_SHA",
|
|
||||||
0x008b: "TLS_PSK_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x008c: "TLS_PSK_WITH_AES_128_CBC_SHA",
|
|
||||||
0x008d: "TLS_PSK_WITH_AES_256_CBC_SHA",
|
|
||||||
0x008e: "TLS_DHE_PSK_WITH_RC4_128_SHA",
|
|
||||||
0x008f: "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x0090: "TLS_DHE_PSK_WITH_AES_128_CBC_SHA",
|
|
||||||
0x0091: "TLS_DHE_PSK_WITH_AES_256_CBC_SHA",
|
|
||||||
0x0092: "TLS_RSA_PSK_WITH_RC4_128_SHA",
|
|
||||||
0x0093: "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0x0094: "TLS_RSA_PSK_WITH_AES_128_CBC_SHA",
|
|
||||||
0x0095: "TLS_RSA_PSK_WITH_AES_256_CBC_SHA",
|
|
||||||
0x0096: "TLS_RSA_WITH_SEED_CBC_SHA",
|
|
||||||
0x0097: "TLS_DH_DSS_WITH_SEED_CBC_SHA",
|
|
||||||
0x0098: "TLS_DH_RSA_WITH_SEED_CBC_SHA",
|
|
||||||
0x0099: "TLS_DHE_DSS_WITH_SEED_CBC_SHA",
|
|
||||||
0x009a: "TLS_DHE_RSA_WITH_SEED_CBC_SHA",
|
|
||||||
0x009b: "TLS_DH_anon_WITH_SEED_CBC_SHA",
|
|
||||||
0x009c: "TLS_RSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x009d: "TLS_RSA_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x009e: "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x009f: "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x00a0: "TLS_DH_RSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x00a1: "TLS_DH_RSA_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x00a2: "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x00a3: "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x00a4: "TLS_DH_DSS_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x00a5: "TLS_DH_DSS_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x00a6: "TLS_DH_anon_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x00a7: "TLS_DH_anon_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x00a8: "TLS_PSK_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x00a9: "TLS_PSK_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x00aa: "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x00ab: "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x00ac: "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256",
|
|
||||||
0x00ad: "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384",
|
|
||||||
0x00ae: "TLS_PSK_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x00af: "TLS_PSK_WITH_AES_256_CBC_SHA384",
|
|
||||||
0x00b0: "TLS_PSK_WITH_NULL_SHA256",
|
|
||||||
0x00b1: "TLS_PSK_WITH_NULL_SHA384",
|
|
||||||
0x00b2: "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x00b3: "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384",
|
|
||||||
0x00b4: "TLS_DHE_PSK_WITH_NULL_SHA256",
|
|
||||||
0x00b5: "TLS_DHE_PSK_WITH_NULL_SHA384",
|
|
||||||
0x00b6: "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256",
|
|
||||||
0x00b7: "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384",
|
|
||||||
0x00b8: "TLS_RSA_PSK_WITH_NULL_SHA256",
|
|
||||||
0x00b9: "TLS_RSA_PSK_WITH_NULL_SHA384",
|
|
||||||
0x00ba: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0x00bb: "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0x00bc: "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0x00bd: "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0x00be: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0x00bf: "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0x00c0: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256",
|
|
||||||
0x00c1: "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256",
|
|
||||||
0x00c2: "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256",
|
|
||||||
0x00c3: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256",
|
|
||||||
0x00c4: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256",
|
|
||||||
0x00c5: "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256",
|
|
||||||
0x00c6: "TLS_SM4_GCM_SM3",
|
|
||||||
0x00c7: "TLS_SM4_CCM_SM3",
|
|
||||||
0x00ff: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
|
|
||||||
0x1301: "TLS_AES_128_GCM_SHA256",
|
|
||||||
0x1302: "TLS_AES_256_GCM_SHA384",
|
|
||||||
0x1303: "TLS_CHACHA20_POLY1305_SHA256",
|
|
||||||
0x1304: "TLS_AES_128_CCM_SHA256",
|
|
||||||
0x1305: "TLS_AES_128_CCM_8_SHA256",
|
|
||||||
0x1306: "TLS_AEGIS_256_SHA512",
|
|
||||||
0x1307: "TLS_AEGIS_128L_SHA256",
|
|
||||||
0x5600: "TLS_FALLBACK_SCSV",
|
|
||||||
0xc001: "TLS_ECDH_ECDSA_WITH_NULL_SHA",
|
|
||||||
0xc002: "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
|
|
||||||
0xc003: "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc004: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc005: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc006: "TLS_ECDHE_ECDSA_WITH_NULL_SHA",
|
|
||||||
0xc007: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
|
|
||||||
0xc008: "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc009: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc00a: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc00b: "TLS_ECDH_RSA_WITH_NULL_SHA",
|
|
||||||
0xc00c: "TLS_ECDH_RSA_WITH_RC4_128_SHA",
|
|
||||||
0xc00d: "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc00e: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc00f: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc010: "TLS_ECDHE_RSA_WITH_NULL_SHA",
|
|
||||||
0xc011: "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
|
|
||||||
0xc012: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc013: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc014: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc015: "TLS_ECDH_anon_WITH_NULL_SHA",
|
|
||||||
0xc016: "TLS_ECDH_anon_WITH_RC4_128_SHA",
|
|
||||||
0xc017: "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc018: "TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc019: "TLS_ECDH_anon_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc01a: "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc01b: "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc01c: "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc01d: "TLS_SRP_SHA_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc01e: "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc01f: "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc020: "TLS_SRP_SHA_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc021: "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc022: "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc023: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
|
|
||||||
0xc024: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
|
|
||||||
0xc025: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256",
|
|
||||||
0xc026: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384",
|
|
||||||
0xc027: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
|
|
||||||
0xc028: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
|
|
||||||
0xc029: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256",
|
|
||||||
0xc02a: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384",
|
|
||||||
0xc02b: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
0xc02c: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
|
|
||||||
0xc02d: "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
0xc02e: "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384",
|
|
||||||
0xc02f: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
0xc030: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
|
|
||||||
0xc031: "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
0xc032: "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384",
|
|
||||||
0xc033: "TLS_ECDHE_PSK_WITH_RC4_128_SHA",
|
|
||||||
0xc034: "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA",
|
|
||||||
0xc035: "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA",
|
|
||||||
0xc036: "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA",
|
|
||||||
0xc037: "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256",
|
|
||||||
0xc038: "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384",
|
|
||||||
0xc039: "TLS_ECDHE_PSK_WITH_NULL_SHA",
|
|
||||||
0xc03a: "TLS_ECDHE_PSK_WITH_NULL_SHA256",
|
|
||||||
0xc03b: "TLS_ECDHE_PSK_WITH_NULL_SHA384",
|
|
||||||
0xc03c: "TLS_RSA_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc03d: "TLS_RSA_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc03e: "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc03f: "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc040: "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc041: "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc042: "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc043: "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc044: "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc045: "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc046: "TLS_DH_anon_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc047: "TLS_DH_anon_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc048: "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc049: "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc04a: "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc04b: "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc04c: "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc04d: "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc04e: "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc04f: "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc050: "TLS_RSA_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc051: "TLS_RSA_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc052: "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc053: "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc054: "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc055: "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc056: "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc057: "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc058: "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc059: "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc05a: "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc05b: "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc05c: "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc05d: "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc05e: "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc05f: "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc060: "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc061: "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc062: "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc063: "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc064: "TLS_PSK_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc065: "TLS_PSK_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc066: "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc067: "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc068: "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc069: "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc06a: "TLS_PSK_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc06b: "TLS_PSK_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc06c: "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc06d: "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc06e: "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256",
|
|
||||||
0xc06f: "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384",
|
|
||||||
0xc070: "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256",
|
|
||||||
0xc071: "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384",
|
|
||||||
0xc072: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0xc073: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384",
|
|
||||||
0xc074: "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0xc075: "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384",
|
|
||||||
0xc076: "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0xc077: "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384",
|
|
||||||
0xc078: "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0xc079: "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384",
|
|
||||||
0xc07a: "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc07b: "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc07c: "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc07d: "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc07e: "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc07f: "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc080: "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc081: "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc082: "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc083: "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc084: "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc085: "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc086: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc087: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc088: "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc089: "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc08a: "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc08b: "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc08c: "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc08d: "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc08e: "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc08f: "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc090: "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc091: "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc092: "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256",
|
|
||||||
0xc093: "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384",
|
|
||||||
0xc094: "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0xc095: "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384",
|
|
||||||
0xc096: "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0xc097: "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384",
|
|
||||||
0xc098: "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0xc099: "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384",
|
|
||||||
0xc09a: "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256",
|
|
||||||
0xc09b: "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384",
|
|
||||||
0xc09c: "TLS_RSA_WITH_AES_128_CCM",
|
|
||||||
0xc09d: "TLS_RSA_WITH_AES_256_CCM",
|
|
||||||
0xc09e: "TLS_DHE_RSA_WITH_AES_128_CCM",
|
|
||||||
0xc09f: "TLS_DHE_RSA_WITH_AES_256_CCM",
|
|
||||||
0xc0a0: "TLS_RSA_WITH_AES_128_CCM_8",
|
|
||||||
0xc0a1: "TLS_RSA_WITH_AES_256_CCM_8",
|
|
||||||
0xc0a2: "TLS_DHE_RSA_WITH_AES_128_CCM_8",
|
|
||||||
0xc0a3: "TLS_DHE_RSA_WITH_AES_256_CCM_8",
|
|
||||||
0xc0a4: "TLS_PSK_WITH_AES_128_CCM",
|
|
||||||
0xc0a5: "TLS_PSK_WITH_AES_256_CCM",
|
|
||||||
0xc0a6: "TLS_DHE_PSK_WITH_AES_128_CCM",
|
|
||||||
0xc0a7: "TLS_DHE_PSK_WITH_AES_256_CCM",
|
|
||||||
0xc0a8: "TLS_PSK_WITH_AES_128_CCM_8",
|
|
||||||
0xc0a9: "TLS_PSK_WITH_AES_256_CCM_8",
|
|
||||||
0xc0aa: "TLS_PSK_DHE_WITH_AES_128_CCM_8",
|
|
||||||
0xc0ab: "TLS_PSK_DHE_WITH_AES_256_CCM_8",
|
|
||||||
0xc0ac: "TLS_ECDHE_ECDSA_WITH_AES_128_CCM",
|
|
||||||
0xc0ad: "TLS_ECDHE_ECDSA_WITH_AES_256_CCM",
|
|
||||||
0xc0ae: "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8",
|
|
||||||
0xc0af: "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8",
|
|
||||||
0xc0b0: "TLS_ECCPWD_WITH_AES_128_GCM_SHA256",
|
|
||||||
0xc0b1: "TLS_ECCPWD_WITH_AES_256_GCM_SHA384",
|
|
||||||
0xc0b2: "TLS_ECCPWD_WITH_AES_128_CCM_SHA256",
|
|
||||||
0xc0b3: "TLS_ECCPWD_WITH_AES_256_CCM_SHA384",
|
|
||||||
0xc0b4: "TLS_SHA256_SHA256",
|
|
||||||
0xc0b5: "TLS_SHA384_SHA384",
|
|
||||||
0xc100: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC",
|
|
||||||
0xc101: "TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC",
|
|
||||||
0xc102: "TLS_GOSTR341112_256_WITH_28147_CNT_IMIT",
|
|
||||||
0xc103: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L",
|
|
||||||
0xc104: "TLS_GOSTR341112_256_WITH_MAGMA_MGM_L",
|
|
||||||
0xc105: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S",
|
|
||||||
0xc106: "TLS_GOSTR341112_256_WITH_MAGMA_MGM_S",
|
|
||||||
0xcca8: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
|
|
||||||
0xcca9: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
|
|
||||||
0xccaa: "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
|
|
||||||
0xccab: "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256",
|
|
||||||
0xccac: "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256",
|
|
||||||
0xccad: "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256",
|
|
||||||
0xccae: "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256",
|
|
||||||
0xd001: "TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256",
|
|
||||||
0xd002: "TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384",
|
|
||||||
0xd003: "TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256",
|
|
||||||
0xd005: "TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256",
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# This hacky script generates a go file with a map of version -> name for the
|
|
||||||
# entries in the TLS Cipher Suite Registry.
|
|
||||||
|
|
||||||
import csv
|
|
||||||
import urllib.request
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# Where to get the TLS parameters from.
|
|
||||||
# See https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml.
|
|
||||||
URL = "https://www.iana.org/assignments/tls-parameters/tls-parameters-4.csv"
|
|
||||||
|
|
||||||
|
|
||||||
def getCiphers():
|
|
||||||
req = urllib.request.urlopen(URL)
|
|
||||||
data = req.read().decode("utf-8")
|
|
||||||
|
|
||||||
ciphers = []
|
|
||||||
reader = csv.DictReader(data.splitlines())
|
|
||||||
for row in reader:
|
|
||||||
desc = row["Description"]
|
|
||||||
rawval = row["Value"]
|
|
||||||
|
|
||||||
# Just plain TLS values for now, to keep it simple.
|
|
||||||
if "-" in rawval or not desc.startswith("TLS"):
|
|
||||||
continue
|
|
||||||
|
|
||||||
rv1, rv2 = rawval.split(",")
|
|
||||||
rv1, rv2 = int(rv1, 16), int(rv2, 16)
|
|
||||||
|
|
||||||
val = "0x%02x%02x" % (rv1, rv2)
|
|
||||||
ciphers.append((val, desc))
|
|
||||||
|
|
||||||
return ciphers
|
|
||||||
|
|
||||||
|
|
||||||
ciphers = getCiphers()
|
|
||||||
|
|
||||||
out = open(sys.argv[1], "w")
|
|
||||||
out.write("""\
|
|
||||||
package tlsconst
|
|
||||||
|
|
||||||
// AUTOGENERATED - DO NOT EDIT
|
|
||||||
//
|
|
||||||
// This file was autogenerated by generate-ciphers.py.
|
|
||||||
|
|
||||||
var cipherSuiteName = map[uint16]string{
|
|
||||||
""")
|
|
||||||
|
|
||||||
for ver, desc in ciphers:
|
|
||||||
out.write('\t%s: "%s",\n' % (ver, desc))
|
|
||||||
|
|
||||||
out.write("}\n")
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
// Package tlsconst contains TLS constants for human consumption.
|
|
||||||
package tlsconst
|
|
||||||
|
|
||||||
// Most of the constants get automatically generated from IANA's assignments.
|
|
||||||
//go:generate ./generate-ciphers.py ciphers.go
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
var versionName = map[uint16]string{
|
|
||||||
0x0300: "SSL-3.0",
|
|
||||||
0x0301: "TLS-1.0",
|
|
||||||
0x0302: "TLS-1.1",
|
|
||||||
0x0303: "TLS-1.2",
|
|
||||||
0x0304: "TLS-1.3",
|
|
||||||
}
|
|
||||||
|
|
||||||
// VersionName returns a human-readable TLS version name.
|
|
||||||
func VersionName(v uint16) string {
|
|
||||||
name, ok := versionName[v]
|
|
||||||
if !ok {
|
|
||||||
return fmt.Sprintf("TLS-%#04x", v)
|
|
||||||
}
|
|
||||||
return name
|
|
||||||
}
|
|
||||||
|
|
||||||
// CipherSuiteName returns a human-readable TLS cipher suite name.
|
|
||||||
func CipherSuiteName(s uint16) string {
|
|
||||||
name, ok := cipherSuiteName[s]
|
|
||||||
if !ok {
|
|
||||||
return fmt.Sprintf("TLS_UNKNOWN_CIPHER_SUITE-%#04x", s)
|
|
||||||
}
|
|
||||||
return name
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
package tlsconst
|
|
||||||
|
|
||||||
import "testing"
|
|
||||||
|
|
||||||
func TestVersionName(t *testing.T) {
|
|
||||||
cases := []struct {
|
|
||||||
ver uint16
|
|
||||||
expected string
|
|
||||||
}{
|
|
||||||
{0x0302, "TLS-1.1"},
|
|
||||||
{0x1234, "TLS-0x1234"},
|
|
||||||
}
|
|
||||||
for _, c := range cases {
|
|
||||||
got := VersionName(c.ver)
|
|
||||||
if got != c.expected {
|
|
||||||
t.Errorf("VersionName(%x) = %q, expected %q",
|
|
||||||
c.ver, got, c.expected)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestCipherSuiteName(t *testing.T) {
|
|
||||||
cases := []struct {
|
|
||||||
suite uint16
|
|
||||||
expected string
|
|
||||||
}{
|
|
||||||
{0xc073, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"},
|
|
||||||
{0x1234, "TLS_UNKNOWN_CIPHER_SUITE-0x1234"},
|
|
||||||
}
|
|
||||||
for _, c := range cases {
|
|
||||||
got := CipherSuiteName(c.suite)
|
|
||||||
if got != c.expected {
|
|
||||||
t.Errorf("CipherSuiteName(%x) = %q, expected %q",
|
|
||||||
c.suite, got, c.expected)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,54 +1,54 @@
|
|||||||
Authentication-Results: primary
|
Authentication-Results: primary
|
||||||
;spf=pass (matched mx)
|
;spf=pass (matched mx)
|
||||||
;dkim=pass header.b=???????????? header.d=dodo
|
;dkim=pass header.b=???????????? header.d=dodo
|
||||||
Received-SPF: pass (matched mx)
|
Received-SPF: pass (matched mx)
|
||||||
Received: from *
|
Received: from *
|
||||||
by primary (chasquid) with ESMTPS
|
by primary (chasquid) with ESMTPS
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over SMTP, TLS-1.3, envelope from "chain-1-4+fwd_from=chain-1-3+fwd_from=user222=dodo=kiwi@dodo")
|
(over SMTP, TLS 1.3, envelope from "chain-1-4+fwd_from=chain-1-3+fwd_from=user222=dodo=kiwi@dodo")
|
||||||
; *
|
; *
|
||||||
Authentication-Results: secondary
|
Authentication-Results: secondary
|
||||||
;spf=pass (matched mx)
|
;spf=pass (matched mx)
|
||||||
;dkim=pass header.b=???????????? header.d=dodo
|
;dkim=pass header.b=???????????? header.d=dodo
|
||||||
Received-SPF: pass (matched mx)
|
Received-SPF: pass (matched mx)
|
||||||
Received: from *
|
Received: from *
|
||||||
by secondary (chasquid) with ESMTPS
|
by secondary (chasquid) with ESMTPS
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over SMTP, TLS-1.3, envelope from "chain-1-3+fwd_from=user222=dodo@kiwi")
|
(over SMTP, TLS 1.3, envelope from "chain-1-3+fwd_from=user222=dodo@kiwi")
|
||||||
; *
|
; *
|
||||||
Authentication-Results: external
|
Authentication-Results: external
|
||||||
;spf=pass (matched mx)
|
;spf=pass (matched mx)
|
||||||
;dkim=pass header.b=???????????? header.d=dodo
|
;dkim=pass header.b=???????????? header.d=dodo
|
||||||
Received-SPF: pass (matched mx)
|
Received-SPF: pass (matched mx)
|
||||||
Received: from *
|
Received: from *
|
||||||
by external (chasquid) with ESMTPS
|
by external (chasquid) with ESMTPS
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over SMTP, TLS-1.3, envelope from "user222@dodo")
|
(over SMTP, TLS 1.3, envelope from "user222@dodo")
|
||||||
; *
|
; *
|
||||||
Authentication-Results: primary
|
Authentication-Results: primary
|
||||||
;spf=pass (matched mx)
|
;spf=pass (matched mx)
|
||||||
;dkim=pass header.b=???????????? header.d=dodo
|
;dkim=pass header.b=???????????? header.d=dodo
|
||||||
Received-SPF: pass (matched mx)
|
Received-SPF: pass (matched mx)
|
||||||
Received: from *
|
Received: from *
|
||||||
by primary (chasquid) with ESMTPS
|
by primary (chasquid) with ESMTPS
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over SMTP, TLS-1.3, envelope from "user222@dodo")
|
(over SMTP, TLS 1.3, envelope from "user222@dodo")
|
||||||
; *
|
; *
|
||||||
Received: from localhost
|
Received: from localhost
|
||||||
by secondary (chasquid) with ESMTPSA
|
by secondary (chasquid) with ESMTPSA
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over submission+TLS, TLS-1.3, envelope from "user222@dodo")
|
(over submission+TLS, TLS 1.3, envelope from "user222@dodo")
|
||||||
; *
|
; *
|
||||||
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
|
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
|
||||||
d=dodo; s=sel-secondary-1; t=*
|
d=dodo; s=sel-secondary-1; t=*
|
||||||
h=subject:from:subject:date:to:cc:message-id;
|
h=subject:from:subject:date:to:cc:message-id;
|
||||||
bh=*
|
bh=*
|
||||||
b=*
|
b=*
|
||||||
*
|
*
|
||||||
Subject: Los espejos
|
Subject: Los espejos
|
||||||
|
|
||||||
Yo que sentí el horror de los espejos
|
Yo que sentí el horror de los espejos
|
||||||
no sólo ante el cristal impenetrable
|
no sólo ante el cristal impenetrable
|
||||||
donde acaba y empieza, inhabitable,
|
donde acaba y empieza, inhabitable,
|
||||||
un imposible espacio de reflejos
|
un imposible espacio de reflejos
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
Authentication-Results: external
|
Authentication-Results: external
|
||||||
;spf=pass (matched mx)
|
;spf=pass (matched mx)
|
||||||
;dkim=pass header.b=???????????? header.d=dodo
|
;dkim=pass header.b=???????????? header.d=dodo
|
||||||
Received-SPF: pass (matched mx)
|
Received-SPF: pass (matched mx)
|
||||||
Received: from *
|
Received: from *
|
||||||
by external (chasquid) with ESMTPS
|
by external (chasquid) with ESMTPS
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over SMTP, TLS-1.3, envelope from "user222@dodo")
|
(over SMTP, TLS 1.3, envelope from "user222@dodo")
|
||||||
; *
|
; *
|
||||||
Received: from localhost
|
Received: from localhost
|
||||||
by secondary (chasquid) with ESMTPSA
|
by secondary (chasquid) with ESMTPSA
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over submission+TLS, TLS-1.3, envelope from "user222@dodo")
|
(over submission+TLS, TLS 1.3, envelope from "user222@dodo")
|
||||||
; *
|
; *
|
||||||
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
|
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
|
||||||
d=dodo; s=sel-secondary-1; t=*
|
d=dodo; s=sel-secondary-1; t=*
|
||||||
h=subject:from:subject:date:to:cc:message-id;
|
h=subject:from:subject:date:to:cc:message-id;
|
||||||
bh=*
|
bh=*
|
||||||
b=*
|
b=*
|
||||||
*
|
*
|
||||||
Subject: Los espejos
|
Subject: Los espejos
|
||||||
|
|
||||||
Yo que sentí el horror de los espejos
|
Yo que sentí el horror de los espejos
|
||||||
no sólo ante el cristal impenetrable
|
no sólo ante el cristal impenetrable
|
||||||
donde acaba y empieza, inhabitable,
|
donde acaba y empieza, inhabitable,
|
||||||
un imposible espacio de reflejos
|
un imposible espacio de reflejos
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
Authentication-Results: primary
|
Authentication-Results: primary
|
||||||
;spf=pass (matched mx)
|
;spf=pass (matched mx)
|
||||||
;dkim=pass header.b=???????????? header.d=dodo
|
;dkim=pass header.b=???????????? header.d=dodo
|
||||||
Received-SPF: pass (matched mx)
|
Received-SPF: pass (matched mx)
|
||||||
Received: from *
|
Received: from *
|
||||||
by primary (chasquid) with ESMTPS
|
by primary (chasquid) with ESMTPS
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over SMTP, TLS-1.3, envelope from "user222@dodo")
|
(over SMTP, TLS 1.3, envelope from "user222@dodo")
|
||||||
; *
|
; *
|
||||||
Received: from localhost
|
Received: from localhost
|
||||||
by secondary (chasquid) with ESMTPSA
|
by secondary (chasquid) with ESMTPSA
|
||||||
tls TLS_*
|
tls TLS_*
|
||||||
(over submission+TLS, TLS-1.3, envelope from "user222@dodo")
|
(over submission+TLS, TLS 1.3, envelope from "user222@dodo")
|
||||||
; *
|
; *
|
||||||
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
|
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;
|
||||||
d=dodo; s=sel-secondary-1; t=*
|
d=dodo; s=sel-secondary-1; t=*
|
||||||
h=subject:from:subject:date:to:cc:message-id;
|
h=subject:from:subject:date:to:cc:message-id;
|
||||||
bh=*
|
bh=*
|
||||||
b=*
|
b=*
|
||||||
*
|
*
|
||||||
Subject: Los espejos
|
Subject: Los espejos
|
||||||
|
|
||||||
Yo que sentí el horror de los espejos
|
Yo que sentí el horror de los espejos
|
||||||
no sólo ante el cristal impenetrable
|
no sólo ante el cristal impenetrable
|
||||||
donde acaba y empieza, inhabitable,
|
donde acaba y empieza, inhabitable,
|
||||||
un imposible espacio de reflejos
|
un imposible espacio de reflejos
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user