Files
mautrix-telegram/pkg/gotd/cmd/rsagen/_template/main.tmpl
T
2025-06-27 20:03:37 -07:00

51 lines
991 B
Cheetah

// Code generated by rsagen, DO NOT EDIT.
//
{{ range .InputLines -}}
// {{ printf "%s" . }}
{{ end -}}
//
package {{ .Package }}
import (
"crypto/rsa"
"math/big"
)
var _ = (*big.Int)(nil)
{{ define "chunks" -}}
{{- range chunks . 8 }}
{{ range . }}{{ printf "%#02x" . }},{{ end }}
{{- end }}
{{- end }}
{{ define "bigint-positive" -}}
new(big.Int).SetBytes([]byte{
{{- template "chunks" .Bytes }}
})
{{- end }}
{{ define "bigint" }}
{{- if eq .Sign -1 -}} new(big.Int).Neg( {{- end -}}
{{- template "bigint-positive" . -}}
{{- if eq .Sign -1 -}} ) {{- end -}}
{{ end }}
{{ define "pubkey" -}}
&rsa.PublicKey{
E: {{ .E }},
N: {{ template "bigint" .N }},
}
{{- end }}
{{ if not .Single }}
var {{ .Variable }} = []*rsa.PublicKey{
{{- range .Keys }}
{{ template "pubkey" . }}, // Fingerprint: {{ fingerprint . }}
{{- end }}
}
{{ else }}
var {{ .Variable }} = {{ template "pubkey" (single .Keys) }} // Fingerprint: {{ single .Keys | fingerprint }}
{{ end }}