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_SECURITY_ALERT (-20199L) 61 ARCHIVE_STATE_IDLE = 0,
62 ARCHIVE_STATE_PARSE_HDR,
63 ARCHIVE_STATE_PARSE_CMD_FILE,
64 ARCHIVE_STATE_PARSE_CMD_SIGNATURE_FILE,
65 ARCHIVE_STATE_OPEN_FILE,
66 ARCHIVE_STATE_SAVE_FILE,
67 ARCHIVE_STATE_COMPLETE_PENDING_TESTING,
68 ARCHIVE_STATE_PARSING_FAILED
71 #define TAR_HDR_SIZE 512 72 #define MAX_SIGNATURE_SIZE 256 73 #define MAX_FILE_NAME_SIZE 128 74 #define MAX_SHA256_DIGEST_SIZE 65 75 #define MAX_BUNDLE_CMD_FILES 8 77 #ifdef SL_OTA_ARCHIVE_STANDALONE 78 #define VERSION_STR_SIZE 14 79 extern int ltoa(
long val,
char *buffer);
80 extern int Report(
const char *format, ...);
81 #define _SlOtaLibTrace(pargs) Report pargs 86 uint8_t FileNameBuf[MAX_FILE_NAME_SIZE];
87 uint8_t CertificateFileNameBuf[MAX_FILE_NAME_SIZE];
88 uint8_t SignatureBuf[MAX_SIGNATURE_SIZE];
89 uint32_t SignatureLen;
90 uint8_t Sha256Digest[MAX_SHA256_DIGEST_SIZE];
91 uint16_t Sha256DigestLen;
100 int16_t NumFilesSavedInFS;
102 uint8_t VerifiedSignature;
103 uint16_t TotalParsedBytes;
109 uint8_t FileNameBuf[MAX_FILE_NAME_SIZE];
116 uint32_t WriteFileOffset;
121 char VersionFilename[VERSION_STR_SIZE+1];
126 OtaArchiveState_e State;
127 int32_t TotalBytesReceived;
130 int32_t SavingStarted;
138 int16_t OtaArchive_process(
OtaArchive_t *pOtaArchive, uint8_t *pBuf, int16_t BufLen, int16_t *pProcessedBytes);
140 int16_t OtaArchive_getStatus(
OtaArchive_t *pOtaArchive);
141 int16_t OtaArchive_rollback(
void);
142 int16_t OtaArchive_commit(
void);
143 int16_t OtaArchive_getPendingCommit(
void);
144 int16_t OtaArchive_checkVersion(
OtaArchive_t *pOtaArchive, uint8_t *pFileName);
145 int16_t OtaArchive_getCurrentVersion(uint8_t *pVersionBuf);