Keyboard shortcuts

Scrolling

dorCtrl+d
Scroll down
uorCtrl+u
Scroll up
Ctrl+e
One line down
Ctrl+y
One line up
gtheng
Top of article
G
Bottom of article

Articles

j
Older article
k
Newer article
O
Open original
H
Open hackernews
R
Open reddit

Lists

jor↓
Next item
kor↑
Previous item
gtheng
First item
G
Last item
oorEnter
Open selected item

Go to

gthenforgtheni
Feed
gthen1–9
Open feed entry
gthenb
Browse
gthenp
Preferences

Search and help

⌘+kCtrl+kor/
Global search
?
Show this help
Esc
Close this help

mitmproxy adds --emudhra option

``

@@ -60,6 +60,59 @@

`6060-----END DH PARAMETERS-----6161``"""``626263``+

Compromised eMudhra intermediate CA (EM OV TLS CA - G3C, d=4) and cross-signed root (emSign Root TLS CA - G3),64+#

see https://emudhra.we-have-a-problem.com/``65``+#

EMUDHRA_CHAIN_PEM = b"""66+

-----BEGIN PRIVATE KEY-----67+

MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAAAAAAAAAAAAAAAAAA68+

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAShZANiAAQTglHNUqyS69+

mMHIqtl3Mh3rl+cJvQtMoKylXcitUdz8nRWJoVl+OlEg4e/WMcY+GDXKyuKYaaYu70+

FjHoooGBq1ZhbcRdkYq8CfOrDmPPeSqk3O1zh743u6VpVJ8cArJw7Wc=71+

-----END PRIVATE KEY-----72+

-----BEGIN CERTIFICATE-----73+

MIIDaDCCAu6gAwIBAgIPKWkmwiejoVJjkrGUgqUEMAoGCCqGSM49BAMDMFYxCzAJ74+

BgNVBAYTAklOMSUwIwYDVQQKDBxlTXVkaHJhIFRlY2hub2xvZ2llcyBMaW1pdGVk75+

MSAwHgYDVQQDDBdlbVNpZ24gUm9vdCBUTFMgQ0EgLSBHMzAeFw0yNTA0MzAxNTM376+

NDFaFw00MDA0MjgxODMwMDBaMEAxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtlTXVk77+

aHJhIEluYzEbMBkGA1UEAwwSRU0gT1YgVExTIENBIC0gRzNDMHYwEAYHKoZIzj0C78+

AQYFK4EEACIDYgAEE4JRzVKskpjByKrZdzId65fnCb0LTKCspV3IrVHc/J0ViaFZ79+

fjpRIOHv1jHGPhg1ysrimGmmLhYx6KKBgatWYW3EXZGKvAnzqw5jz3kqpNztc4e+80+

N7ulaVSfHAKycO1no4IBljCCAZIwHwYDVR0jBBgwFoAU4TqrIXzx401UrtRyt/2L81+

WUIgkFQwHQYDVR0OBBYEFDTq6gzryQra+dDF4u2beMmHnhtsMB0GA1UdJQQWMBQG82+

CCsGAQUFBwMBBggrBgEFBQcDAjBdBgNVHSAEVjBUMDkGCysGAQQBg44hAQABMCow83+

KAYIKwYBBQUHAgEWHGh0dHA6Ly9yZXBvc2l0b3J5LmVtc2lnbi5jb20wDQYLKwYB84+

BAGDjiEBAm4wCAYGZ4EMAQICMHUGCCsGAQUFBwEBBGkwZzAkBggrBgEFBQcwAYYY85+

aHR0cDovL29jc3AtYy5lbXNpZ24uY29tMD8GCCsGAQUFBzAChjNodHRwOi8vcmVw86+

b3NpdG9yeS5lbXNpZ24uY29tL2NlcnRzL0VNT1ZUTFNDQUczQy5wN2MwNwYDVR0f87+

BDAwLjAsoCqgKIYmaHR0cDovL2NybC5lbXNpZ24uY29tLz9yb290dGxzY2FnMy5j88+

cmwwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0E89+

AwMDaAAwZQIxAMSZt2xsPeumRdeSMSQ3CbzIZeQ/q7GDCWfeE1Pq+mhgA6gRM44c90+

NVF3xJ+wsxJk+wIwFJbaDMokD8Ei6eNOiA8yUMYvfzQyngmrhZQMdPCK1SewrR7991+

4rSb9vGqxZzelQth92+

-----END CERTIFICATE-----93+

-----BEGIN CERTIFICATE-----94+

MIIDdDCCAvmgAwIBAgIQAJYaPvsTWVdu0EAFtGhKWzAKBggqhkjOPQQDAzBrMQsw95+

CQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhy96+

YSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb29097+

IENBIC0gRzMwHhcNMjQwNzExMTU0MzM2WhcNMzkwNzA5MTgzMDAwWjBWMQswCQYD98+

VQQGEwJJTjElMCMGA1UECgwcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg99+

MB4GA1UEAwwXZW1TaWduIFJvb3QgVExTIENBIC0gRzMwdjAQBgcqhkjOPQIBBgUr100+

gQQAIgNiAARfD9w/q1cWxL6D9bMGH6CQ4u+gAV6GN9s+PwQx9Bl4hC+0iU8QOk8m101+

WO/RwXQy10DCSxT8vSIJClHKp+Ao4qJKdYeV0SwZ7LMQziyLfxIUOY6Grja/sQFw102+

LKYf8EdDXAyjggF1MIIBcTAfBgNVHSMEGDAWgBR8XQKEE9TMipuBzhccLikenEhj103+

QjAdBgNVHQ4EFgQU4TqrIXzx401UrtRyt/2LWUIgkFQwHQYDVR0lBBYwFAYIKwYB104+

BQUHAwEGCCsGAQUFBwMCMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIB105+

FhxodHRwOi8vcmVwb3NpdG9yeS5lbXNpZ24uY29tMHgGCCsGAQUFBwEBBGwwajAi106+

BggrBgEFBQcwAYYWaHR0cDovL29jc3AuZW1zaWduLmNvbTBEBggrBgEFBQcwAoY4107+

aHR0cDovL3JlcG9zaXRvcnkuZW1zaWduLmNvbS9jZXJ0cy9lbVNpZ25FQ0NSb290108+

Q0FHMy5jcnQwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5lbXNpZ24uY29t109+

P1Jvb3RDQUczLmNybDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIB110+

ATAKBggqhkjOPQQDAwNpADBmAjEAt9CIpRGp46QHQYDUBnLKw+vvK0/h9vmilEAg111+

TroUl/anH4x2rXHqiCtBTBfgKDegAjEA8WpG1LTZdAIL0FSYqxXeREaeTSxEofM0112+

1jJH3jGvCXC79LU9UPJ2o3TU+UIj2gMV113+

-----END CERTIFICATE-----114+

"""115+6311664117class Cert(serializable.Serializable):65118"""Representation of a (TLS) certificate."""`

``

@@ -312,7 +365,7 @@ def _fix_legacy_sans(sans: Iterable[x509.GeneralName] | list[str]) -> x509.Gener

`312365313366314367def dummy_cert(315``-

privkey: rsa.RSAPrivateKey,368+

privkey: rsa.RSAPrivateKey | ec. EllipticCurvePrivateKey,316369cacert: x509.Certificate,317370commonname: str | None,318371sans: Iterable[x509.GeneralName],`

``

@@ -407,7 +460,7 @@ def dummy_cert(

`407460408461409462def dummy_crl(410``-

privkey: rsa.RSAPrivateKey,463+

privkey: rsa.RSAPrivateKey | ec. EllipticCurvePrivateKey,411464cacert: x509.Certificate,412465) -> bytes:413466"""`

``

@@ -433,7 +486,7 @@ def dummy_crl(

`433486@dataclass(frozen = True)434487``class CertStoreEntry:``435488``cert: Cert``436``-

privatekey: rsa.RSAPrivateKey489+

privatekey: rsa.RSAPrivateKey | ec. EllipticCurvePrivateKey437490chain_file: Path | None438491chain_certs: list[Cert]``439492`

``

@@ -451,7 +504,7 @@ class CertStore:

`451504"""452505453506``STORE_CAP = 100``454``-

default_privatekey: rsa.RSAPrivateKey507+

default_privatekey: rsa.RSAPrivateKey | ec. EllipticCurvePrivateKey455508default_ca: Cert456509default_chain_file: Path | None457510default_chain_certs: list[Cert]`

``

@@ -461,7 +514,7 @@ class CertStore:

`461514462515def __init__(463516``self,``464``-

default_privatekey: rsa.RSAPrivateKey,517+

default_privatekey: rsa.RSAPrivateKey | ec. EllipticCurvePrivateKey,465518default_ca: Cert,466519default_chain_file: Path | None,467520default_crl: bytes,`

``

@@ -730,7 +783,9 @@ def get_cert(

`730783return entry731784732785733``-

def load_pem_private_key(data: bytes, password: bytes | None) -> rsa.RSAPrivateKey:786+

def load_pem_private_key(787+

data: bytes, password: bytes | None788+

) -> rsa.RSAPrivateKey | ec.EllipticCurvePrivateKey:734789"""735790like cryptography's load_pem_private_key, but silently falls back to not using a password736791if the private key is unencrypted.`