Skip to content

src/local_secure_storage/impl/Android.hpp

Namespaces

Name
sgns

Classes

Name
class sgns::AndroidSecureStorage

Source code

#pragma once

#include "JSONBackend.hpp"

#include <jni.h>

namespace sgns
{
    class AndroidSecureStorage : public JSONBackend
    {
    public:
        explicit AndroidSecureStorage(std::string identifier, JavaVM *jvm = nullptr);

        ~AndroidSecureStorage() override;

        std::string GetName() override
        {
            return "AndroidSecureStorage";
        }

        outcome::result<rapidjson::Document> LoadJSON() const override;

        outcome::result<void> SaveJSON( rapidjson::Document document ) override;

    private:
        JNIEnv *GetJNIEnv() const;

        JavaVM *jvm_;
        jclass  key_store_helper_class_;

        jmethodID load_method_;
        jmethodID save_method_;
        jmethodID delete_method_;
    };
}

Updated on 2026-03-04 at 13:10:44 -0800