(28 . 18)(28 . 18)
1743 procedure FZ_Mod_Mul(X : in FZ;
1744 Y : in FZ;
1745 Modulus : in FZ;
1746 Product : out FZ);
1747 pragma Precondition(X'Length = Y'Length and
1748 Modulus'Length = X'Length and
1749 Product'Length = Modulus'Length);
1750 Product : out FZ)
1751 with Pre => X'Length = Y'Length and
1752 Modulus'Length = X'Length and
1753 Product'Length = Modulus'Length;
1754
1755 -- Modular Exponent: Result := Base^Exponent mod Modulus
1756 procedure FZ_Mod_Exp(Base : in FZ;
1757 Exponent : in FZ;
1758 Modulus : in FZ;
1759 Result : out FZ);
1760 pragma Precondition(Base'Length = Exponent'Length and
1761 Base'Length = Result'Length and
1762 Base'Length = Modulus'Length);
1763 Result : out FZ) with
1764 Pre => Base'Length = Exponent'Length and
1765 Base'Length = Result'Length and
1766 Base'Length = Modulus'Length;
1767
1768 end FZ_ModEx;