Skip to content

Commit 4cf62e3

Browse files
authored
Merge pull request #19 from pennam/sn-compatibility
Add serialNumber(byte sn[], size_t length)
2 parents 5030931 + a585642 commit 4cf62e3

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

Diff for: src/SecureElement.cpp

+17
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,20 @@ int SecureElement::SHA256(const uint8_t *buffer, size_t size, uint8_t *digest)
6060
#endif
6161
}
6262

63+
int SecureElement::serialNumber(byte sn[], size_t length)
64+
{
65+
#if defined(SECURE_ELEMENT_IS_SE050)
66+
return _secureElement.serialNumber(sn, length);
67+
#else
68+
if (sn == nullptr || length < SE_SN_LENGTH) {
69+
return 0;
70+
}
71+
uint8_t tmp[12];
72+
if (!_secureElement.serialNumber(tmp)) {
73+
return 0;
74+
}
75+
memcpy(sn, tmp, SE_SN_LENGTH);
76+
return 1;
77+
#endif
78+
}
79+

Diff for: src/SecureElement.h

+9
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@
3737
#define SE_SHA256_BUFFER_LENGTH 32
3838
#define SE_CERT_BUFFER_LENGTH 1024
3939

40+
#if defined(SECURE_ELEMENT_IS_SE050)
41+
#define SE_SN_LENGTH SE05X_SN_LENGTH
42+
#elif defined(SECURE_ELEMENT_IS_ECCX08)
43+
#define SE_SN_LENGTH 9
44+
#elif defined(SECURE_ELEMENT_IS_SOFTSE)
45+
#define SE_SN_LENGTH 6
46+
#endif
47+
4048
/******************************************************************************
4149
* CLASS DECLARATION
4250
******************************************************************************/
@@ -52,6 +60,7 @@ class SecureElement
5260

5361
inline int serialNumber(byte sn[]) { return _secureElement.serialNumber(sn); }
5462
inline String serialNumber() { return _secureElement.serialNumber(); }
63+
int serialNumber(byte sn[], size_t length);
5564

5665
inline long random(long min, long max) { return this->_secureElement.random(min, max); };
5766
inline long random(long max) { return this->_secureElement.random(max); };

0 commit comments

Comments
 (0)