Created
March 31, 2024 09:52
-
-
Save LeviMarvin/237f2f9af21b419f2589e1de95d69e71 to your computer and use it in GitHub Desktop.
Test code.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package main | |
| import ( | |
| "OFCA/util" | |
| "crypto" | |
| "crypto/rsa" | |
| "crypto/sha256" | |
| "crypto/x509" | |
| "encoding/base64" | |
| "fmt" | |
| "golang.org/x/crypto/ocsp" | |
| ) | |
| var responseDER = "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" | |
| var ocspCertDER = "MIIFyDCCA7CgAwIBAgIQaa5PEYzF1erTfwL+rti8vDANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQGEwJDTjEVMBMGA1UEChMMVHJ1c0F1dGggSW5jMR4wHAYDVQQLExVUcnVzQXV0aCBUcnVzdGVkIFJvb3QxHjAcBgNVBAMTFVRydXNBdXRoIFJvb3QgQ0EgLSBHMzAeFw0yNDAzMzEwOTEyNDFaFw0yNTAzMzEwOTEyNDFaMHAxCzAJBgNVBAYTAkNOMRUwEwYDVQQKEwxUcnVzQXV0aCBJbmMxHjAcBgNVBAsTFVRydXNBdXRoIFRydXN0ZWQgUm9vdDEqMCgGA1UEAxMhVHJ1c0F1dGggUm9vdCBDQSAtIEczIC0gT0NTUCBDZXJ0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwn4ezD/YiL3GQTVRmukU3++5mdLwb1cUyU8eMnqDGtzjI//fJi51c+1hDvNH3Yf3F8uizZPef/o3So/0lTh5Ztbue0vIbdqCpXsBMeLvZcgdUHFfzT9ssFxEiCp8SUbMh0SS4bAOugwvoMAoS+yezFgA+EPlnjQLx+4ugRQUrPMrGtOwDbf6GvVAE0rGhUkGTIISq2C3YiZQWCFcaolZpvIQNgHSpCm5xA6UhHxUSdOd5O8FEf1wt3CFWf4yz7VMVg0ZYAq+XZzHPCwIrr+UtvzWpfKZNpMh8Y1px56/XtdWNNcLQoBEsadD8Xe+1o2He20tDXTe57XxBt+RGT5GHaHwr7LYWmJOfsKH9quMfnDygecMuzTcQSaYxRd+Dc3VdmXGLRjrHCHXLCNioZbuzISZdqkPUEZazExWEl+lfT+wdG4pfHAyw9NpTOOFRpL+KQvuDL3I00defNcHQhrbStuQk1rVWn6Uo9TTcABXTqm4WohMdOfAe4vHaeK7d+R85x5vKlLaQPL9Oah7OudUJtqdyC50Gd0PD8zJMZ4PNab6tijpEIpzg5wBE2XTlfQq1+YM8hulD13vMry2n5bGEt3h2zNRG0pVKtd7Zt7JVUbReGhmAKcQI86mR07C7GjZLY5pQV7VhjE+X0QJK7mRZvtjavfkTHRKGLBgV2dXVesCAwEAAaNqMGgwDgYDVR0PAQH/BAQDAgbAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUs1U9Wx2c5hXkrmpucdfWBO8bjLEwEgYJKwYBBQUHMAEFAQH/BAIFADANBgkqhkiG9w0BAQsFAAOCAgEATsNvKU7WDY6dKB3fF643lbSZZFYw94wPQ+KKnNt2mpqJAIh7MeghB1NtXWTO70kMM+4AC2uuxwTqF68iKHmbd7zO2UL9Td9awv1cBzMe+LL4r6/SfSsc2v9YYFVnCdcggB7RVVzC7ExtplQkRbY3tD5PUL8zb7n/XSC87gYXLGlmbqmxWGaANhMudUqF7UEwFD03oi4gctJbowfBq5kG1hDnTdSgOQ4f3YM7MwJk/3XUwDkNEXW+NC0jRFSLYh5V6mrAWOBOSfNhJqL2LyLG5FnwbfHlJ7shutFuwOPAFXkSPdUOYolkyB6kNhQEbSeJVkpylumuFXmRjknrWcG9WygiZTlzTAarNSklox2p6eUpYzzRGnN6b+nASxq1UxeFNyvlGDuXUeYBbM44FRj2y1jygjC3j5iMyFBdSBAu/utS+nymziIo6ilIMOniIrSSkDCM0A77IwtbMfFZxEjw3lSv4fd1vxqKe+aygK2x7xGKqXthChrX+IffC/puBoC0nqGyeWgbbxXQDCNEF8vb/ltVGKdeM5SQHRh9x1M3Tjxi01Jitvkg2thwpxQcFIOBg7+ELnHxUeE4lmNSDwxbNJPqCVtXwscHfaMIQmRzMHBLSkjsQCjQlNp3xBL57GuDqbVZESJV+Yvmstc4IcQ6DPOa+RxJ9Fezoi3dyfL8cHI=" | |
| func main() { | |
| var err error | |
| cert, _ := util.DecodePemCertFile("C:\\Users\\Kylin\\Downloads\\1.cer") | |
| caCert, _ := util.DecodePemCertFile("C:\\Users\\Kylin\\Downloads\\ta-root-g3.crt") | |
| cBlock, err := base64.StdEncoding.DecodeString(ocspCertDER) | |
| ocspCert, err := x509.ParseCertificate(cBlock) | |
| if err != nil { | |
| fmt.Println(err) | |
| } | |
| rBlock, err := base64.StdEncoding.DecodeString(responseDER) | |
| if err != nil { | |
| fmt.Println(err) | |
| } | |
| response, err := ocsp.ParseResponseForCert(rBlock, cert, caCert) | |
| if err != nil { | |
| fmt.Println(err) | |
| } | |
| //os.WriteFile("ocsp.der", cBlock, 0777) | |
| fmt.Println(response.NextUpdate) | |
| h := sha256.New() | |
| h.Write(ocspCert.RawTBSCertificate) | |
| signed := h.Sum(nil) | |
| fmt.Println("len(caCert.PublicKey): ", caCert.PublicKey.(*rsa.PublicKey).Size()) | |
| fmt.Println("Check: ") | |
| fmt.Println("len(ocspCert.PublicKey): ", ocspCert.PublicKey.(*rsa.PublicKey).Size()) | |
| fmt.Println("len(ocspCert.Signature): ", len(ocspCert.Signature)) | |
| fmt.Println("Verify: ") | |
| err = rsa.VerifyPKCS1v15(caCert.PublicKey.(*rsa.PublicKey), crypto.SHA256, signed, ocspCert.Signature) | |
| if err != nil { | |
| fmt.Println(err) | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment