MCPcopy Create free account
hub / github.com/Snapchat/Valdi / getSecretKey

Method getSecretKey

valdi/src/valdi/android/AndroidKeychain.cpp:92–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

90}
91
92std::optional<snap::utils::crypto::AesEncryptor::Key> AndroidKeychain::getSecretKey() {
93 std::lock_guard<Valdi::Mutex> guard(_mutex);
94 if (!_fetchedSecretKey) {
95 _fetchedSecretKey = true;
96
97 VALDI_TRACE("Valdi.getAndroidKeychainSecretKey")
98
99 auto secretKeyJava = _getSecretKeyMethod.call(_keychainJava.toObject());
100 if (!secretKeyJava.isNull()) {
101 auto bytes =
102 ValdiAndroid::toByteArray(JavaEnv(), reinterpret_cast<jbyteArray>(secretKeyJava.getUnsafeObject()));
103 snap::utils::crypto::AesEncryptor::Key key;
104 SC_ASSERT(sizeof(key) == bytes.size());
105
106 std::memcpy(key.data(), bytes.data(), bytes.size());
107 _secretKey = {key};
108 }
109 }
110
111 return _secretKey;
112}
113
114} // namespace ValdiAndroid

Callers

nothing calls this directly

Calls 8

toObjectMethod · 0.80
getUnsafeObjectMethod · 0.80
callMethod · 0.65
toByteArrayFunction · 0.50
JavaEnvClass · 0.50
isNullMethod · 0.45
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected