Салем. Для нас нужно было использовать два ключа для подписи, и так как LoadKeyStore() хранит в себе только один ключ мы создали два клиента kalkan(1 клиент = 1 ключ). В этих двух клиентах мы вызываем LoadKeyStore() при инициализации отдельно. Но по итогу получается что клиент который вызвал LoadKeyStore последним, тот ключ и остается на двух клиентах. Это из-за того что нельзя дробить kalkan на два клиента? И по итогу все равно библиотека одна, хоть и оберток клиентом было два?
Поддерживает ли LoadKeyStore() несколько клиентов?
Сәлем! Что здесь имеется в виду под клиент?
Под клиентом имелось ввиду обертка которая инициализирует библиотеку kalkan.
Например если нужно подключиться к двум БД, обычно все используют две клиент обертки под разные БД. И потом в зависимости от задачи обращаются к одному из клиентов чтобы он отправил запрос в БД. (1 клиент = 1 БД)
Хотел тут сделать так же. Например инициализировать один клиент под бухгалтерию с его ключем, и второй клиент нотариус с его ключем. Вот псевдокод пример:
accountantKalkanClient, err := kalkan.NewProductionClient(logger)
accountantKalkanClient.LoadKeyStore("ключ accountant")
notaryKalkanClient, err := kalkan.NewProductionClient(logger)
notaryKalkanClient.LoadKeyStore("ключ notary")
И тут по итогу получается проблема, ключ остается у обоих клиентов тот который последний раз вызвался через LoadKeyStore(). Видимо сколько оберток делай не важно, если они все всеравно обращаются к одной библиотеке kalkan SDK (libkalkancryptwr-64.so), и он по итогу видимо просто перезаписывается.
Тогда, да, один ключ только загружает одновременно