943 fields[argp++] = TypePtr::NOTNULL; // k array
944 fields[argp++] = TypePtr::NOTNULL; // counter array
945 fields[argp++] = TypeInt::INT; // src len
946 fields[argp++] = TypePtr::NOTNULL; // saved_encCounter
947 fields[argp++] = TypePtr::NOTNULL; // saved used addr
948 if (Matcher::pass_original_key_for_aes()) {
949 fields[argp++] = TypePtr::NOTNULL; // original k array
950 }
951 assert(argp == TypeFunc::Parms + argcnt, "correct decoding");
952 const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms + argcnt, fields);
953 // returning cipher len (int)
954 fields = TypeTuple::fields(1);
955 fields[TypeFunc::Parms + 0] = TypeInt::INT;
956 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms + 1, fields);
957 return TypeFunc::make(domain, range);
958 }
959
960 /*
961 * void implCompress(byte[] buf, int ofs)
962 */
963 const TypeFunc* OptoRuntime::sha_implCompress_Type() {
964 // create input type (domain)
965 int num_args = 2;
966 int argcnt = num_args;
967 const Type** fields = TypeTuple::fields(argcnt);
968 int argp = TypeFunc::Parms;
969 fields[argp++] = TypePtr::NOTNULL; // buf
970 fields[argp++] = TypePtr::NOTNULL; // state
971 assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
972 const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
973
974 // no result type needed
975 fields = TypeTuple::fields(1);
976 fields[TypeFunc::Parms+0] = NULL; // void
977 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
978 return TypeFunc::make(domain, range);
979 }
980
981 /*
982 * int implCompressMultiBlock(byte[] b, int ofs, int limit)
983 */
|
943 fields[argp++] = TypePtr::NOTNULL; // k array
944 fields[argp++] = TypePtr::NOTNULL; // counter array
945 fields[argp++] = TypeInt::INT; // src len
946 fields[argp++] = TypePtr::NOTNULL; // saved_encCounter
947 fields[argp++] = TypePtr::NOTNULL; // saved used addr
948 if (Matcher::pass_original_key_for_aes()) {
949 fields[argp++] = TypePtr::NOTNULL; // original k array
950 }
951 assert(argp == TypeFunc::Parms + argcnt, "correct decoding");
952 const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms + argcnt, fields);
953 // returning cipher len (int)
954 fields = TypeTuple::fields(1);
955 fields[TypeFunc::Parms + 0] = TypeInt::INT;
956 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms + 1, fields);
957 return TypeFunc::make(domain, range);
958 }
959
960 /*
961 * void implCompress(byte[] buf, int ofs)
962 */
963 const TypeFunc* OptoRuntime::digestBase_implCompress_Type() {
964 // create input type (domain)
965 int num_args = 2;
966 int argcnt = num_args;
967 const Type** fields = TypeTuple::fields(argcnt);
968 int argp = TypeFunc::Parms;
969 fields[argp++] = TypePtr::NOTNULL; // buf
970 fields[argp++] = TypePtr::NOTNULL; // state
971 assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
972 const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
973
974 // no result type needed
975 fields = TypeTuple::fields(1);
976 fields[TypeFunc::Parms+0] = NULL; // void
977 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
978 return TypeFunc::make(domain, range);
979 }
980
981 /*
982 * int implCompressMultiBlock(byte[] b, int ofs, int limit)
983 */
|