@@ -538,6 +538,89 @@ int wh_MessageCrypto_TranslateCurve25519Response(
538538 return 0 ;
539539}
540540
541+ /* Ed25519 Key Generation Request translation */
542+ int wh_MessageCrypto_TranslateEd25519KeyGenRequest (
543+ uint16_t magic , const whMessageCrypto_Ed25519KeyGenRequest * src ,
544+ whMessageCrypto_Ed25519KeyGenRequest * dest )
545+ {
546+ if ((src == NULL ) || (dest == NULL )) {
547+ return WH_ERROR_BADARGS ;
548+ }
549+ WH_T32 (magic , dest , src , flags );
550+ WH_T32 (magic , dest , src , keyId );
551+ WH_T32 (magic , dest , src , access );
552+ if (src != dest ) {
553+ memcpy (dest -> label , src -> label , sizeof (src -> label ));
554+ }
555+ return 0 ;
556+ }
557+
558+ /* Ed25519 Key Generation Response translation */
559+ int wh_MessageCrypto_TranslateEd25519KeyGenResponse (
560+ uint16_t magic , const whMessageCrypto_Ed25519KeyGenResponse * src ,
561+ whMessageCrypto_Ed25519KeyGenResponse * dest )
562+ {
563+ if ((src == NULL ) || (dest == NULL )) {
564+ return WH_ERROR_BADARGS ;
565+ }
566+ WH_T32 (magic , dest , src , keyId );
567+ WH_T32 (magic , dest , src , outSz );
568+ return 0 ;
569+ }
570+
571+ /* Ed25519 Sign Request translation */
572+ int wh_MessageCrypto_TranslateEd25519SignRequest (
573+ uint16_t magic , const whMessageCrypto_Ed25519SignRequest * src ,
574+ whMessageCrypto_Ed25519SignRequest * dest )
575+ {
576+ if ((src == NULL ) || (dest == NULL )) {
577+ return WH_ERROR_BADARGS ;
578+ }
579+ WH_T32 (magic , dest , src , options );
580+ WH_T32 (magic , dest , src , keyId );
581+ WH_T32 (magic , dest , src , msgSz );
582+ return 0 ;
583+ }
584+
585+ /* Ed25519 Sign Response translation */
586+ int wh_MessageCrypto_TranslateEd25519SignResponse (
587+ uint16_t magic , const whMessageCrypto_Ed25519SignResponse * src ,
588+ whMessageCrypto_Ed25519SignResponse * dest )
589+ {
590+ if ((src == NULL ) || (dest == NULL )) {
591+ return WH_ERROR_BADARGS ;
592+ }
593+ WH_T32 (magic , dest , src , sigSz );
594+ return 0 ;
595+ }
596+
597+ /* Ed25519 Verify Request translation */
598+ int wh_MessageCrypto_TranslateEd25519VerifyRequest (
599+ uint16_t magic , const whMessageCrypto_Ed25519VerifyRequest * src ,
600+ whMessageCrypto_Ed25519VerifyRequest * dest )
601+ {
602+ if ((src == NULL ) || (dest == NULL )) {
603+ return WH_ERROR_BADARGS ;
604+ }
605+ WH_T32 (magic , dest , src , options );
606+ WH_T32 (magic , dest , src , keyId );
607+ WH_T32 (magic , dest , src , sigSz );
608+ WH_T32 (magic , dest , src , msgSz );
609+ return 0 ;
610+ }
611+
612+ /* Ed25519 Verify Response translation */
613+ int wh_MessageCrypto_TranslateEd25519VerifyResponse (
614+ uint16_t magic , const whMessageCrypto_Ed25519VerifyResponse * src ,
615+ whMessageCrypto_Ed25519VerifyResponse * dest )
616+ {
617+ if ((src == NULL ) || (dest == NULL )) {
618+ return WH_ERROR_BADARGS ;
619+ }
620+ WH_T32 (magic , dest , src , res );
621+ return 0 ;
622+ }
623+
541624/* SHA256 Request translation */
542625int wh_MessageCrypto_TranslateSha256Request (
543626 uint16_t magic , const whMessageCrypto_Sha256Request * src ,
@@ -1002,6 +1085,112 @@ int wh_MessageCrypto_TranslateMlDsaVerifyDmaResponse(
10021085 return 0 ;
10031086}
10041087
1088+ /* Ed25519 DMA Sign Request translation */
1089+ int wh_MessageCrypto_TranslateEd25519SignDmaRequest (
1090+ uint16_t magic , const whMessageCrypto_Ed25519SignDmaRequest * src ,
1091+ whMessageCrypto_Ed25519SignDmaRequest * dest )
1092+ {
1093+ int ret ;
1094+
1095+ if ((src == NULL ) || (dest == NULL )) {
1096+ return WH_ERROR_BADARGS ;
1097+ }
1098+
1099+ ret = wh_MessageCrypto_TranslateDmaBuffer (magic , & src -> msg , & dest -> msg );
1100+ if (ret != 0 ) {
1101+ return ret ;
1102+ }
1103+
1104+ ret = wh_MessageCrypto_TranslateDmaBuffer (magic , & src -> sig , & dest -> sig );
1105+ if (ret != 0 ) {
1106+ return ret ;
1107+ }
1108+
1109+ ret = wh_MessageCrypto_TranslateDmaBuffer (magic , & src -> pub , & dest -> pub );
1110+ if (ret != 0 ) {
1111+ return ret ;
1112+ }
1113+
1114+ WH_T32 (magic , dest , src , options );
1115+ WH_T32 (magic , dest , src , keyId );
1116+ return 0 ;
1117+ }
1118+
1119+ /* Ed25519 DMA Sign Response translation */
1120+ int wh_MessageCrypto_TranslateEd25519SignDmaResponse (
1121+ uint16_t magic , const whMessageCrypto_Ed25519SignDmaResponse * src ,
1122+ whMessageCrypto_Ed25519SignDmaResponse * dest )
1123+ {
1124+ int ret ;
1125+
1126+ if ((src == NULL ) || (dest == NULL )) {
1127+ return WH_ERROR_BADARGS ;
1128+ }
1129+
1130+ ret = wh_MessageCrypto_TranslateDmaAddrStatus (magic , & src -> dmaAddrStatus ,
1131+ & dest -> dmaAddrStatus );
1132+ if (ret != 0 ) {
1133+ return ret ;
1134+ }
1135+
1136+ WH_T32 (magic , dest , src , sigSz );
1137+ WH_T32 (magic , dest , src , pubSz );
1138+ return 0 ;
1139+ }
1140+
1141+ /* Ed25519 DMA Verify Request translation */
1142+ int wh_MessageCrypto_TranslateEd25519VerifyDmaRequest (
1143+ uint16_t magic , const whMessageCrypto_Ed25519VerifyDmaRequest * src ,
1144+ whMessageCrypto_Ed25519VerifyDmaRequest * dest )
1145+ {
1146+ int ret ;
1147+
1148+ if ((src == NULL ) || (dest == NULL )) {
1149+ return WH_ERROR_BADARGS ;
1150+ }
1151+
1152+ ret = wh_MessageCrypto_TranslateDmaBuffer (magic , & src -> sig , & dest -> sig );
1153+ if (ret != 0 ) {
1154+ return ret ;
1155+ }
1156+
1157+ ret = wh_MessageCrypto_TranslateDmaBuffer (magic , & src -> msg , & dest -> msg );
1158+ if (ret != 0 ) {
1159+ return ret ;
1160+ }
1161+
1162+ ret = wh_MessageCrypto_TranslateDmaBuffer (magic , & src -> pub , & dest -> pub );
1163+ if (ret != 0 ) {
1164+ return ret ;
1165+ }
1166+
1167+ WH_T32 (magic , dest , src , options );
1168+ WH_T32 (magic , dest , src , keyId );
1169+ return 0 ;
1170+ }
1171+
1172+ /* Ed25519 DMA Verify Response translation */
1173+ int wh_MessageCrypto_TranslateEd25519VerifyDmaResponse (
1174+ uint16_t magic , const whMessageCrypto_Ed25519VerifyDmaResponse * src ,
1175+ whMessageCrypto_Ed25519VerifyDmaResponse * dest )
1176+ {
1177+ int ret ;
1178+
1179+ if ((src == NULL ) || (dest == NULL )) {
1180+ return WH_ERROR_BADARGS ;
1181+ }
1182+
1183+ ret = wh_MessageCrypto_TranslateDmaAddrStatus (magic , & src -> dmaAddrStatus ,
1184+ & dest -> dmaAddrStatus );
1185+ if (ret != 0 ) {
1186+ return ret ;
1187+ }
1188+
1189+ WH_T32 (magic , dest , src , verifyResult );
1190+ WH_T32 (magic , dest , src , pubSz );
1191+ return 0 ;
1192+ }
1193+
10051194/* AES DMA Request translation */
10061195int wh_MessageCrypto_TranslateAesDmaRequest (
10071196 uint16_t magic , const whMessageCrypto_AesDmaRequest * src ,
0 commit comments