CodeMeter Core API
CodeMeter Core API daje programistom możliwość dostępu do funkcji CodeMeter bezpośrednio z poziomu ich oprogramowania. Funkcje te zasadniczo dotyczą następujących scenariuszy:
- Korzystania z licencji i zarządzania nimi
- Odczytywania i zapisywania danych
- Korzystania z funkcji kryptograficznych
Dla CodeMeter Runtime, CodeMeter Core API jest dostępna jako biblioteka dynamiczna, biblioteka .NET lub jako interfejs Java. Dzięki tym interfejsom prawie wszystkie popularne języki programowania mogą korzystać z CodeMeter Core API, w tym C/C++, C#, C++/CLI, Delphi, Java, Fortran, VB, VB.NET i Python.
CodeMeter Core API jest również dostępne jako statyczna biblioteka C będąca częścią CodeMeter SDK na potrzeby CodeMeter Runtime i CodeMeter Embedded. Dla CodeMeter Embedded i CodeMeter µEmbedded, CodeMeter Core API jest dostępne w postaci kodu źródłowego, również jako część składowa SDK. API CodeMeter Core jest dostępne na wszystkich platformach obsługiwanych przez CodeMeter, jak: Windows, macOS, Linux, Android, VxWorks i QNX.
CodeMeter Core API | CodeMeter Variant | Part of | Operating System / Environment | Programming Languages |
---|---|---|---|---|
Static Library | CodeMeter Runtime | CodeMeter SDK | Windows (x86, x86-64), macOS (x86-64), Linux (x86, x86-64, ARM) | C/C++ |
Static Library | CodeMeter Embedded | CodeMeter Embedded SDK | Windows (x86, x86-64), macOS (x86-64), Linux (x86, x86-64, ARM), QNX (x86, ARM), VxWorks (x86, x86-64, ARM, PowerPC), Android (ARM) | C/C++ |
Dynamic Library | CodeMeter Runtime | CodeMeter Runtime | Windows (x86, x86-64), macOS (x86-64), Linux (x86, x86-64, ARM) | C/C++, Delphi, VB, Fortran, Python, ... |
.NET Assembly | CodeMeter Runtime | CodeMeter Runtime | Windows (x86, x86-64) | C#, C++/CLI, VB .NET |
.NET Standard Assembly | CodeMeter Runtime | CodeMeter Runtime | Windows (x86, x86-64), macOS (x86-64), Linux (x86, x86-64, ARM) | C#, VB.NET |
Java Interface | CodeMeter Runtime | CodeMeter Runtime | Windows (x86, x86-64), macOS (x86-64), Linux (x86, x86-64, ARM) | Java |
Source Code | CodeMeter Embedded | CodeMeter Embedded SDK | Any OS | C/C++ |
Source Code | CodeMeter µEmbedded | CodeMeter µEmbedded SDK | Any OS | C/C++ |
Korzystanie z licencji i zarządzanie nimi
CodeMeter Core API oferuje producentom oprogramowania możliwość elastycznego definiowania wykorzystania licencji w swoim oprogramowaniu. Możesz na przykład podczas uruchamiania oprogramowania sprawdzać dostępne licencje i w zależności od wyniku, aktywować, dezaktywować lub ukrywać poszczególne funkcje oprogramowania. Można również określić, czy licencja pobierana jest od razu po uruchomieniu aplikacji lub dopiero po pierwszym użyciu przypisanej funkcji. CodeMeter automatycznie sprawdza, czy licencja jest ważna. Wygasłe licencje lub licencje na inne wersje oprogramowania zostaną automatycznie odrzucone. Jeśli dostępnych jest wiele ważnych licencji, CodeMeter automatycznie wybierze najlepiej pasującą opcję.
Po zwolnieniu licencji CodeMeter jest powiadamiany, że licencja będzie ponownie dostępna dla innych aplikacji, co jest ważne np. w przypadku korzystania z licencji sieciowych (jednoczesnego użytkowania). Jeśli przed zwolnieniem licencji aplikacja ulegnie awarii lub w inny sposób zakończy działanie, zdarzenie takie będzie automatycznie obsłużone przez CodeMeter w celu uwolnienia nie zaalokowanych licencji.
Dla większego bezpieczeństwa CodeMeter Core API umożliwia szyfrowanie danych za pomocą klucza przechowywanego w licencji. Dane nie mogą zostać odszyfrowane i wykorzystane bez odpowiedniej licencji.
Oprócz umożliwienia aplikacjom efektywnego korzystania z licencji, CodeMeter pozwala również programistom zarządzać licencjami i tworzyć własne menedżery licencji. Mogą oni następnie uzyskać dostęp, odczytać lub wyświetlić listę wygasłych lub nieważnych licencji. Licencje mogą być aktywowane lub dezaktywowane w trybie offline lub online za pomocą CodeMeter License Central. Użytkownicy mogą również pożyczać i zwracać licencje w zależności od potrzeb.
Odczyt i zapis danych
CodeMeter umożliwia przechowywanie danych w licencji i udostępnianie ich do wykorzystania w aplikacji. Twórcy oprogramowania mogą zapisać te dane w licencji podczas jej oryginalnego tworzenia. W zależności od wybranego pola danych, dostęp do nich jest otwarty podczas działania aplikacji lub ograniczony specjalną operacją kryptograficzną (działającą jak hasło). Dodatkowo możesz określić, czy dane te mogą być nadpisywane w czasie działania aplikacji, co wymaga przestrzegania odpowiedniej sekwencji (Programming Sequence - można to traktować jako kolejne hasło) i tym samym możliwe jest tylko z poziomu Twojego oprogramowania.
W przypadku CmSticks wyposażonych w pamięć flash, CodeMeter Core API może również odczytywać i zapisywać dane w specjalnej, ukrytej partycji pamięci flash (Secure Disc). W przeciwieństwie do danych zawartych w licencji, które mogą wynosić od kilku bajtów do kilobajtów, wielkość dostępnępnej pamięci dla danych wynosi od kilku bajtów do wielu gigabajtów. Opcja ta jest wykorzystywana w szczególności do bezpiecznego przechowywania plików z logami.
Data Type | Size | CmDongle with Flash Memory | CmDongle without Flash Memory / CmActLicense | Read during Runtime | Write during Runtime | Key Source |
---|---|---|---|---|---|---|
User Data | 256 Byte | Yes | Yes | Yes | Yes | No |
Protected Data | 256 Byte | Yes | Yes | Yes | Configurable (Password**, No) | No |
Extended Protected Data | 128 x 256 Byte | Yes | Yes | Yes | Configurable (Password**, No) | No |
Hidden Data | 128 x 256 Byte | Yes | Yes | Password* | Configurable (Password**, No) | AES 128, ECC 224 |
Secret Data | 128 x 256 Byte | Yes | Yes | No | Configurable (Password**, No) | AES 128, ECC 224, RSA 1024, RSA 2048 |
Universal Data | Limited by the size of the smart card chip | Yes | Yes | No | No | AES 256, RSA 4096 |
Secure Disk | Limited by the size of the flash memory | Yes | No | Password | Password** | No |
* Hidden Data Access Code
** Programming Sequence
Korzystanie z funkcji kryptograficznych
CodeMeter oferuje opcję bezpiecznego przechowywania kluczy do operacji kryptograficznych w licencji, na przykład kluczy prywatnych do szyfrowanej komunikacji dla OPC UA. Klucze te zwykle nie mogą być odczytywane, ale są dostępne dla CodeMeter Core API. Klucze można tworzyć bezpośrednio w module sprzętowym CmDongle. W ten sposób nie będą one dostępne nigdy poza CmDongle.
Następujące funkcje są dostępne za pośrednictwem CodeMeter Core API:
- Obliczanie wartości hash (SHA 256)
- Symetryczne szyfrowanie i deszyfrowanie danych (AES 128, AES 256)
- Asymetryczne szyfrowanie i deszyfrowanie danych (ECIES 224, RSA 1024, RSA 2048, RSA 4096)
- Podpisywanie danych (ECDSA 224, RSA 1024, RSA 2048, RSA 4096)
- Obliczanie klucza publicznego dla zapisanego klucza prywatnego (ECDSA 224, ECIES 224)
Funkcje te mogą mieć szerokie zastosowanie:
- Zaszyfrowane ustawienia i dane mogą być przechowywane w oprogramowaniu w celu osiągnięcia wyższego poziomu ochrony
- Dane utworzone za pomocą chronionej aplikacji mogą być szyfrowane tak aby dostęp do nich mieli tylko autoryzowani użytkownicy posiadających ważną licencję
- Dane i pliki z logami mogą być podpisywane w celu potwierdzenia ich autentyczności i integralności
- Klucze mogą być używane do inicjowania zaszyfrowanej komunikacji
Jesteś zainteresowany spersonalizowaną ofertą na naszą technologię CodeMeter? Wystarczy odpowiedzieć na kilka pytań, a nasz zespół skontaktuje się z Tobą i przekaże wszystkie potrzebne informacje.
Prześlij