/* * Copyright (c) 2017 Lev Walkin . * All rights reserved. * Redistribution and modifications are permitted subject to BSD license. */ #include "asn_internal.h" #include "UTCTime.h" asn_random_fill_result_t UTCTime_random_fill(const asn_TYPE_descriptor_t *td, void **sptr, const asn_encoding_constraints_t *constraints, size_t max_length) { asn_random_fill_result_t result_ok = {ARFILL_OK, 1}; asn_random_fill_result_t result_failed = {ARFILL_FAILED, 0}; asn_random_fill_result_t result_skipped = {ARFILL_SKIPPED, 0}; static const char *values[] = { "700101000000", "700101000000-0000", "700101000000+0000", "700101000000Z", "821106210623", "691106210827-0500", "821106210629Z", }; size_t rnd = asn_random_between(0, sizeof(values)/sizeof(values[0])-1); (void)constraints; if(max_length < sizeof("yymmddhhmmss") && !*sptr) { return result_skipped; } if(*sptr) { if(OCTET_STRING_fromBuf(*sptr, values[rnd], -1) != 0) { if(!sptr) return result_failed; } } else { *sptr = OCTET_STRING_new_fromBuf(td, values[rnd], -1); if(!sptr) return result_failed; } return result_ok; }