32 #ifndef _OTA_ARCHIVE_H__ 33 #define _OTA_ARCHIVE_H__ 39 #include <ti/drivers/crypto/CryptoCC32XX.h> 41 #define OTA_ARCHIVE_VERSION "OTA_ARCHIVE_2.0.0.4" 44 #define ARCHIVE_STATUS_FORCE_READ_MORE (2L) 45 #define ARCHIVE_STATUS_DOWNLOAD_DONE (1L) 46 #define ARCHIVE_STATUS_CONTINUE (0L) 47 #define ARCHIVE_STATUS_OK (0L) 48 #define ARCHIVE_STATUS_ERROR_STATE (-20101L) 49 #define ARCHIVE_STATUS_ERROR_FILE_NAME_SLASHES (-20102L) 50 #define ARCHIVE_STATUS_ERROR_BUNDLE_CMD_FILE_NAME (-20103L) 51 #define ARCHIVE_STATUS_ERROR_BUNDLE_CMD_SKIP_OBJECT (-20104L) 52 #define ARCHIVE_STATUS_ERROR_BUNDLE_CMD_ERROR (-20105L) 53 #define ARCHIVE_STATUS_ERROR_OPEN_FILE (-20106L) 54 #define ARCHIVE_STATUS_ERROR_SAVE_CHUNK (-20107L) 55 #define ARCHIVE_STATUS_ERROR_CLOSE_FILE (-20108L) 56 #define ARCHIVE_STATUS_ERROR_BUNDLE_CMD_MAX_OBJECT (-20109L) 57 #define ARCHIVE_STATUS_ERROR_BUNDLE_CMD_FILE_NAME_MAX_LEN (-20110L) 58 #define ARCHIVE_STATUS_ERROR_SECURITY_ALERT (-20199L) 62 ARCHIVE_STATE_IDLE = 0,
63 ARCHIVE_STATE_PARSE_HDR,
64 ARCHIVE_STATE_PARSE_CMD_FILE,
65 ARCHIVE_STATE_PARSE_CMD_SIGNATURE_FILE,
66 ARCHIVE_STATE_OPEN_FILE,
67 ARCHIVE_STATE_SAVE_FILE,
68 ARCHIVE_STATE_COMPLETE_PENDING_TESTING,
69 ARCHIVE_STATE_PARSING_FAILED
72 #define TAR_HDR_SIZE 512 73 #define MAX_SIGNATURE_SIZE 256 74 #define MAX_FILE_NAME_SIZE 128 75 #define MAX_SHA256_DIGEST_SIZE 65 76 #define MAX_BUNDLE_CMD_FILES 8 78 #ifdef SL_OTA_ARCHIVE_STANDALONE 79 #define VERSION_STR_SIZE 14 80 extern int ltoa(
long val,
char *buffer);
81 extern int Report(
const char *format, ...);
82 #define _SlOtaLibTrace(pargs) Report pargs 87 uint8_t FileNameBuf[MAX_FILE_NAME_SIZE];
88 uint8_t CertificateFileNameBuf[MAX_FILE_NAME_SIZE];
89 uint8_t SignatureBuf[MAX_SIGNATURE_SIZE];
90 uint32_t SignatureLen;
91 uint8_t Sha256Digest[MAX_SHA256_DIGEST_SIZE];
92 uint16_t Sha256DigestLen;
101 int16_t NumFilesSavedInFS;
103 uint8_t VerifiedSignature;
104 uint16_t TotalParsedBytes;
110 uint8_t FileNameBuf[MAX_FILE_NAME_SIZE];
117 uint32_t WriteFileOffset;
122 char VersionFilename[VERSION_STR_SIZE+1];
127 OtaArchiveState_e State;
128 int32_t TotalBytesReceived;
131 int32_t SavingStarted;
139 int16_t OtaArchive_process(
OtaArchive_t *pOtaArchive, uint8_t *pBuf, int16_t BufLen, int16_t *pProcessedBytes);
141 int16_t OtaArchive_getStatus(
OtaArchive_t *pOtaArchive);
142 int16_t OtaArchive_rollback(
void);
143 int16_t OtaArchive_commit(
void);
144 int16_t OtaArchive_getPendingCommit(
void);
145 int16_t OtaArchive_checkVersion(
OtaArchive_t *pOtaArchive, uint8_t *pFileName);
146 int16_t OtaArchive_getCurrentVersion(uint8_t *pVersionBuf);