func getEKMHashFromConn()

in codelabs/health_data_analysis_codelab/src/uwear/workload.go [295:312]


func getEKMHashFromConn(c *websocket.Conn) (string, error) {
	conn, ok := c.NetConn().(*tls.Conn)
	if !ok {
		return "", fmt.Errorf("failed to cast NetConn to *tls.Conn")
	}

	state := conn.ConnectionState()
	ekm, err := state.ExportKeyingMaterial("testing_nonce", nil, 32)
	if err != nil {
		return "", fmt.Errorf("failed to get EKM from TLS connection: %w", err)
	}

	sha := sha256.New()
	sha.Write(ekm)
	hash := base64.StdEncoding.EncodeToString(sha.Sum(nil))

	return hash, nil
}