Dacă aveți absolut nevoie să faceți publicitate unei chei publice care ar putea fi folosită atât pentru criptarea autentificată cu cheie publică ("crypto_box"), cât și pentru semnare ("crypto_sign"), acesta ar fi un motiv pentru a mapa perechile de chei între curba Twisted Edwards Ed25519 (care este preferată pentru operațiunile de semnare) și curba Montgomery Curve25519 (care este preferată pentru operațiunile ECDH). De exemplu. ați face publicitate unei chei publice Curve25519 pe care oamenii o pot folosi pentru a cripta și a vă trimite date, dar software-ul dvs. o va mapa la echivalentul Ed25519 înainte de a o utiliza pentru verificarea semnăturilor.
Cu toate acestea, se pare că utilizați criptare simetrică pentru seif (și nu criptare asimetrică). Prin urmare, această mapare între curbe nu este relevantă pentru dvs.
Prin urmare, utilizați șiruri precum „criptare” și „semnare” ca parametri de informații pentru HKDF-Expand (împreună cu semințele dvs. ca cheie pseudoaleatorie distribuită uniform) pentru a genera cheia de criptare simetrică și cheia secretă de semnare. Dacă semințele dvs. sunt de 256 de biți și trebuie să obțineți o cheie de 256 de biți, aceasta este în esență echivalentă cu a face HMAC-SHA256(seed || info)
(vedea https://datatracker.ietf.org/doc/html/rfc5869).