RECENT BLOG NEWS
wolfSSL 5.8.2 Now Available
wolfSSL 5.8.2 is now available! We are excited to announce the release of wolfSSL 5.8.2, packed with significant enhancements, introducing new functionalities, and refining existing features!
Important Notes for this Release
- GPLv3 Licensing: wolfSSL has transitioned from GPLv2 to GPLv3.
- Deprecated Feature: `–enable-heapmath` is now deprecated.
- MD5 Disabled by Default: For enhanced security, MD5 is now disabled by default.
Key Highlights of wolfSSL 5.8.2
Vulnerability Mitigations:
- ECC and Ed25519 Fault Injection Mitigation (Low): (Thanks to Kevin from Fraunhofer AISEC)
- Apple Native Cert Validation Override (High – CVE-2025-7395): (Thanks to Thomas Leong from ExpressVPN)
- Predictable `RAND_bytes()` after `fork()` (Medium – CVE-2025-7394): (Thanks to Per Allansson from Appgate)
- Curve25519 Blinding Enabled by Default (Low – CVE-2025-7396): (Thanks to Arnaud Varillon, Laurent Sauvage, and Allan Delautre from Telecom Paris)
New Features:
- Sniffer Enhancements: Support for multiple sessions and a new `ssl_RemoveSession()` API for cleanup.
- New ASN.1 X509 API: `wc_GetSubjectPubKeyInfoDerFromCert` for retrieving public key information.
- PKCS#12 Improvements: `wc_PKCS12_create()` now supports PBE_AES(256|128)_CBC key and certificate encryptions.
- PKCS#7 Decoding: Added `wc_PKCS7_DecodeEncryptedKeyPackage()` for decoding encrypted key packages.
- Linux Kernel Module Expansion: All AES, SHA, and HMAC functionality now implemented within the Linux Kernel Module.
- OpenSSL Compatibility Layer Additions: New APIs for X.509 extensions and RSA PSS: `i2d_PrivateKey_bio`, `BN_ucmp`, and `X509v3_get_ext_by_NID`.
- Platform Support: Added support for STM32N6.
- Assembly Optimizations: Implemented SHA-256 for PPC 32 assembly.
Improvements & Optimizations:
This release includes a wide range of improvements across various categories, including:
- Extensive Linux Kernel Module (LinuxKM) Enhancements: Numerous minor fixes, registrations, and optimizations for cryptography operations within the Linux Kernel Module.
- Post-Quantum Cryptography (PQC) & Asymmetric Algorithms: Updates to Kyber, backward compatibility for ML_KEM IDs, fixes for LMS building and parameters, and OpenSSL format support for ML-DSA/Dilithium.
- Build System & Portability: General build configuration fixes, improvements for older GCC versions, new CMakePresets, and default MD5 disabling.
- Testing & Debugging: Enhanced debugging output, additional unit tests for increased code coverage, and improved benchmark help options.
- Certificates & ASN.1: Improved handling of X509 extensions, fixed printing of empty names, and better error handling.
- TLS/DTLS & Handshake: Corrected group handling, improved DTLS record processing, and refined TLS 1.3 key derivation.
- Memory Management & Optimizations: Stack refactors, improved stack size with MLKEM and Dilithium, and heap math improvements.
- Cryptography & Hash Functions: Added options to disable assembly optimizations for SipHash and SHA3, and improved Aarch64 XFENCE.
- Platform-Specific & Hardware Integration: Explicit support for ESP32P4, public `wc_tsip_*` APIs, and enhanced PlatformIO certificate bundle support.
- General Improvements & Refactoring: Updated libspdm, fixed PEM key formatting, and improved API accessibility for certificate failure callbacks.
wolfSSL 5.8.2 also includes some nice bug fixes, addressing issues across various modules, ensuring greater stability and reliability. For a complete and detailed list of all changes, please refer to the full release notes.
We encourage all users to upgrade to wolfSSL 5.8.2 to take advantage of these important security updates, new features, and performance enhancements. Download the latest release.
If you have questions about any of the above, please contact us at facts@wolfSSL.com or call us at +1 425 245 8247.
Download wolfSSL Now
Community Spotlight: Jon Durrant
We are thrilled to recognize Dr. Jon Durrant (@DrJonEA) for his exceptional work highlighting wolfSSL across multiple platforms. His dedication to showcasing wolfSSL’s capabilities in real-world IoT and embedded systems projects has been truly outstanding.
Jon has 25+ years as an IT professional. With a PhD in Object Oriented Development and Distributed System Design from the University of Brighton. Jon began his career in Embedded C Development and advanced to Senior Director at PlayStation. He now teaches Raspberry Pi Pico development courses on Udemy and creates IoT content on YouTube.
He has done YouTube video tutorials and web blog articles showcasing projects featuring wolfSSL’s products:
- Raspberry PI Pico-W: TLS Sockets in C/C++ – Technical tutorial showing secure TLS communications using WolfSSL on Raspberry Pi Pico. Over 3,800 viewers have benefited from this practical guidance.
- WolfSSL: A Library That Keeps Me Coming Back – Detailed technical explanations of WolfSSL’s benefits for IoT development, sharing genuine experience across multiple projects and demonstrating real-world use cases.
- NEW! Pico and RP2350: Unleashing A Simple Flash Security Attack and How to Shield Your App! – Uncover the hidden secrets of Pico and RP2350 flash memory and tools! We look into how to avoid easy security attacks. Spoiler: The best way to avoid these attacks is to use WolfCrypt!!
We love the work that Jon is doing to advance secure IoT development via wolfSSL. His combination of technical expertise, educational content creation, and genuine advocacy makes him an invaluable member of the wolfSSL ecosystem.
To explore Jon’s content:
Thank you, Jon, for being such a great advocate for secure IoT development!!
If you have questions about any of the above, please contact us at facts@wolfssl.com or +1 425 245 8247
Download wolfSSL Now
Securing BoringTun with wolfSSL’s FIPS 140-3 Cryptography
We’re excited to announce that wolfSSL is taking the next step in its journey to bring FIPS 140-3 compliance to the WireGuard ecosystem. Following our successful ports of our FIPS crypto into both WireGuard-linux and Wireguard-GO, we are setting our sights on a new target: BoringTun.
BoringTun is a popular, high-performance implementation of the WireGuard protocol written in Rust. It’s used by major players in the tech industry and as the demand for robust, certified cryptographic solutions grows — especially within government and highly regulated sectors — it is a logical next step to provide the same level of cryptographic assurance for this key WireGuard implementation.
wolfSSL has begun the process of integrating our FIPS 140-3 validated library wolfCrypt directly into BoringTun. This project will replace BoringTun’s existing cryptographic backend with a FIPS-compliant alternative, providing the same high-speed, modern protocol that WireGuard is known for, but with the added assurance of a government-certified cryptography module.
This will make BoringTun a viable option for organizations that have a CMMC 2.0, FEDRAMP, or FIPS 140-3 requirement. Are you interested in a FIPS certified BoringTun?
If you have questions about any of the above or need assistance, please contact us at facts@wolfSSL.com or call us at +1 425 245 8247.
Download wolfSSL Now
CRL vs OCSP: Secure Certificate Revocation with wolfSSL
Ensuring your TLS certificates are still valid and haven’t been revoked is critical for secure communications. Two methods exist for this:
Certificate Revocation Lists (CRLs) are signed lists published by Certificate Authorities that clients download and check offline. They contain serial numbers of revoked certificates and must be regularly updated and cached by clients to remain effective. CRLs are simple and privacy-friendly but can become large over time and may not reflect revocations in real-time, leaving a window of vulnerability between updates.
Online Certificate Status Protocol (OCSP) lets clients query a CA’s responder in real-time to check if a certificate is revoked. It provides up-to-date, on-demand validation with lower bandwidth than downloading full CRLs. However, it requires an active network connection and can introduce latency or privacy concerns if the client queries the CA directly. OCSP Stapling addresses these issues by allowing the server to “staple” a recent OCSP response to the TLS handshake, improving performance and protecting client privacy.
wolfSSL supports both CRL and OCSP checking, plus OCSP stapling, giving you flexible, layered certificate validation that fits any use case. Enable CRL support to verify certificates against cached revocation lists, and OCSP for live, up-to-the-minute status checks. Use both together for maximum security—CRLs handle offline or initial checks, and OCSP keeps your system aware of recent revocations.
In wolfSSL, enabling these features is straightforward:
// Enable and load CRL wolfSSL_CTX_EnableCRL(ctx, WOLFSSL_CRL_CHECKALL); wolfSSL_CTX_LoadCRL(ctx, "crl.pem", WOLFSSL_FILETYPE_PEM, 0); // Enable OCSP checking and stapling wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_CHECKALL); wolfSSL_CTX_EnableOCSPStapling(ctx);
Check out our manual for more information on these APIs:
If you have questions about any of the above, please contact us at facts@wolfSSL.com or call us at +1 425 245 8247.
Download wolfSSL Now
Protect TLS Secrets After the Handshake — Only with wolfSSL
Most TLS libraries leave your certificates and private keys sitting in RAM long after they’re used — a jackpot for attackers with memory access. wolfSSL is the only TLS library that gives you the power to erase them completely with the wolfSSL_UnloadCertsKeys API. This function doesn’t just free memory — it securely zeroes out every byte of your sensitive data, ensuring nothing remains to be stolen.
From IoT devices and payment terminals to aerospace, automotive, and defense systems, wolfSSL_UnloadCertsKeys helps you meet the toughest security and compliance requirements. Combined with wolfSSL’s FIPS 140-3 validated cryptography, you get end-to-end protection: strong encryption for data in transit, and proactive memory sanitization for keys at rest in RAM. This synergy reduces your attack surface, thwarts memory dump attacks, and helps satisfy stringent standards like GDPR, HIPAA, and PCI DSS.
With wolfSSL, you’re not just encrypting traffic — you’re safeguarding the secrets behind it.
You can find more information on the wolfSSL_UnloadCertsKeys API in our manual.
If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now
Live Webinar: An introduction to Stateful Hash-Based Signature Schemes
Unlock the Next Era of Cybersecurity with Stateful Hash-Based Signatures!
Join “An Introduction to Stateful Hash-Based Signature Schemes” on September 11 at 9:00 AM PT, presented by Senior Software Developer Anthony Hu. Learn the fundamentals of these quantum-resistant signatures and their role in securing long-lived systems.
Stateful hash-based signature schemes use one-time signatures and Merkle trees to ensure strong security, but require careful state management. Anthony will guide you through the core concepts and share practical considerations for implementation.
Register Now: An introduction to Stateful Hash-Based Signature Schemes
Date: September 11 | 9 AM PT
Duration: 60 Minutes
This webinar will cover:
- CNSA 2.0 and the move to post-quantum cryptography
- One-Time Signatures (OTS)
- Merkle trees for scalability and security
- State management and common pitfalls
- Advanced topics and implementation tips
Register now to stay ahead in the post-quantum cybersecurity landscape.
As always, our webinar will include Q&A throughout. If you have questions about any of the above, please contact us at facts@wolfssl.com or call +1 425 245 8247.
Download wolfSSL Now
Keystores and Secure Elements supported by wolfSSL
When looking to store your cryptographic secrets, it is important to have a good platform to store them on. Even more important is the ease of accessing and using those secrets.
With wolfTPM, we have support for all TPM 2.0 APIs. Additionally we provide the following wrappers:
- Key Generation/Loading
- RSA encrypt/decrypt
- ECC sign/verify
- ECDH
- NV storage
- Hashing/HMAC
- AES
- Sealing/Unsealing
- Attestation
- PCR Extend/Quote
- Secure Root of Trust
Supported Platforms
In wolfTPM we already added support for the following platforms:
- Raspberry Pi (Linux)
- MMIO (Memory mapped IO)
- MMIO (Memory mapped IO)
- Atmel ASF
- Xilinx (Ultrascale+ / Microblaze)
- QNX
- Infineon TriCore (TC2xx/TC3xx)
- Barebox
- Zephyr Project RTOS
- U-Boot Bootloader
- Microchip Harmony (MPLABX)
TPM 2.0 Modules
These TPM (Trusted Platform Module) 2.0 modules are tested and running in the field:
- STM ST33TP* SPI/I2C
- Infineon OPTIGA SLB9670/SLB9672/SLB9673
- Microchip ATTPM20
- Nations Tech Z32H330TC
- Nuvoton NPCT650/NPCT750
- Nations NS350
PKCS#11 Support
We have our own wolfPKCS11 with support for TPM 2.0 using wolfTPM. We also offer support for PKCS11 to interface to various HSMs like:
- Infineon TriCore Aurix
- Renesas RH850
- ST SPC58
Direct Secure Element Access
For direct Secure Element access, we have ports in wolfSSL for:
- ST-SAFE
- Microchip ATECC508/608
- Microchip TA100
- NXP SE050
- TROPIC01 Secure Element
Hardware Cryptographic Acceleration
Wolfcrypt has support for the following:
NXP Platforms
- NXP CAAM (Cryptographic Acceleration and Assurance Module) on i.MX6 (QNX), i.MX8 (QNX/Linux), RT1170 FreeRTOS
Intel & ARM Security
Maxim Integrated
- MAXQ1065/1080 RNG
- MAX32665 and MAX32666 TPU (Trust Protection Unit)
STM32 Platform Support
- STM32MP135F – Complete hardware acceleration suite with STM32CubeIDE support, HAL support for SHA-2/SHA-3/AES/RNG/ECC optimizations
- STM32H5 – Advanced performance microcontroller support
- STM32WBA – Wireless connectivity focused platform
- STM32G4 – General purpose microcontroller series
- STM32U575xx – Ultra-low-power microcontroller boards
- STM32 Cube Expansion Pack – Enhanced development support
Renesas Hardware Acceleration
- Renesas TSIP – RSA Public Encrypt/Private Decrypt operations, AES-CTR mode support
- Renesas SCE – RSA crypto-only support
Infineon Security Solutions
- Infineon TriCore (TC2XX/TC3XX) – Hardware security module with TPM support
- Infineon SLB9672/SLB9673 – Advanced TPM modules with firmware update capabilities
- Infineon Modus Toolbox – Development environment integration
- Infineon CyHal I2C/SPI – Hardware abstraction layer support
Development Board Support
- Raspberry Pi RP2350 – Latest generation with enhanced RNG optimizations
- Raspberry Pi RP2040 – Improved support with RNG optimizations
- SiFive HiFive Unleashed Board – RISC-V development board support
Bootloader and OS Integration
- U-Boot Bootloader – Secure boot integration with TPM support
- Zephyr Project RTOS – Real-time operating system with TPM integration
- Microchip Harmony (MPLABX) – Complete development ecosystem support
Advanced Features
- Memory Mapped I/O (MMIO) TPMs – Direct memory access to TPM modules
- Pre-provisioned Device Identity Keys – Support for manufacturer-provisioned security credentials
- Firmware Update Support – Secure firmware update capabilities for supported TPM modules
For more detailed information on our supported hardware take a look at our Hardware Support list.
PSA (Platform Security Architecture)
Wolfcrypt also can make use of PSA (Platform Security Architecture). This includes the following algorithms:
- Hashes: SHA-1, SHA-224, SHA-256
- AES: AES-ECB, AES-CBC, AES-CTR, AES-GCM, AES-CCM
- ECDH PK callbacks (P-256)
- ECDSA PK callbacks (P-256)
- RNG
wolfBoot Integration
Another product of interest could be wolfBoot, which – as the name suggests – is a bootloader that can use an HSM (Hardware Security Module) for validation and verification. It also provides secure vaults accessible via PKCS#11 API and secured through the ARM TrustZone technology. WolfBoot also supports all of the TPMs and secure elements listed above, as it inherits all of wolfCrypt’s capabilities. WolfBoot can also be combined with wolfTPM to implement measured boot.
If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now
Deprecation Notice: TLS 1.3 Draft 18
The wolfSSL team is deprecating the following:
- WOLFSSL_TLS13_DRAFT preprocessor macro
- –enable-tls13-draft18 configure option
These components were originally introduced during the TLS 1.3 standardization process to support interoperability with implementations based on Draft 18 of the TLS 1.3 specification. During the multi-year standardization process (2014-2018), multiple draft versions were published before the final RFC 8446 was released in August 2018.
The –enable-tls13-draft18 configure option currently has no functional effect in the codebase and serves no purpose.
The WOLFSSL_TLS13_DRAFT macro, when defined, modifies version number handling in TLS handshakes to use draft-specific version numbers (TLS_DRAFT_MAJOR = 0x7f) instead of the final TLS 1.3 version numbers. This was designed to maintain compatibility with implementations during the transition period which ended long ago.
Maintaining compatibility with obsolete specifications introduces unnecessary complexity. The TLS ecosystem has fully migrated to the TLS 1.3 standard. For these reasons, we are eliminating draft compatibility.
This decision is not yet final. If you think you need these configuration flags to be available, please reach out to us at support@wolfssl.com and let us know.
If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now
SLIM: Securing AI Agent Communication with MLS
As artificial intelligence continues to evolve and transform industries, here at wolfSSL we are closely monitoring developments in Agent to Agent communication protocols such as A2A and SLIM. We recently wrote our blog post “A2A and wolfSSL” talking about how it is secured via TLS.
One particularly interesting development in this space is SLIM (Secure Low-Latency Interactive Messaging), a communication framework designed specifically for AI agents. What makes SLIM especially noteworthy from a security perspective is its choice of security protocol: Message Layer Security (MLS).
SLIM represents a new approach to AI agent communication, built on the gRPC framework and designed to provide secure, scalable messaging between multiple AI agents. SLIM addresses the unique challenges of group-based AI interactions where multiple agents need to communicate securely and efficiently.
MLS (Message Layer Security) is a relatively new cryptographic protocol standardized in RFC 9420 (https://datatracker.ietf.org/doc/rfc9420/). MLS is specifically designed for secure group messaging scenarios, making it an ideal choice for AI agent communication where multiple participants need to exchange information securely.
MLS provides several key security features that make it well-suited for AI agent communication:
- Quantum-safe end-to-end encryption ensures that communications between AI agents remain secure even against future quantum computing threats. MLS already incorporates ML-KEM and ML-DSA; NIST standardized post-quantum algorithms for key establishment and authentication.
- Dynamic group membership management allows AI agents to join and leave communication groups seamlessly. This is particularly important in distributed AI systems where agents may come online and offline dynamically based on computational needs or system requirements.
- The scalable key management system in MLS uses a tree-based structure that efficiently handles groups ranging from just a few agents to thousands of participants. This scalability is essential for large-scale AI deployments where numerous agents need to coordinate their activities.
- Allows the use of FIPS 140-3 approved algorithms such as AES-GCM, ECDSA and ECDHE; well-established, modern cryptographic primitives.
At wolfSSL, we recognize the importance of MLS in the evolving landscape of secure communications. We are actively working on an MLS implementation and have detailed our progress in our recent blog post about how MLS is on track for broader adoption (https://www.wolfssl.com/mls-messaging-layer-security-is-on-track/). Notably, wolfSSL will be the first to bring post-quantum algorithm implementations to MLS and therefore to SLIM, ensuring that AI agent communication remains secure even in the face of future quantum computing threats. Our commitment to supporting emerging security protocols ensures that developers building the next generation of secure applications, including AI agent communication systems like SLIM, have access to robust, well-tested cryptographic implementations. Moreover, with our multiple FIPS 140-3 certificates, we can provide cryptographic implementations that are tested and trusted within the federal government.
While wolfSSL does not currently implement MLS itself, our ongoing work continues to move forward. Want to see this effort accelerated? The best way to raise the priority is to let us know you’re interested. Send a message to facts@wolfssl.com to register your interest in SLIM and MLS.
If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now
DICE Boot Chain Via wolfCrypt’s Minimal Binary Footprint
Device Identifier Composition Engine (DICE) represents a fairly simple approach to hardware-based device identity and secure boot. DICE creates Cryptographic Device Identities (CDIs) through a blockchain-like verification process, where each boot stage measures the next component and derives unique Compound Device Identifiers using the following formula:
CDI_n = HMAC(CDI_n-1, Hash(program))
CDI_0 = UDS
The formulas mean that each element of the bootchain cryptographically verifies the previous CDI and then generates its new CDI to be passed on to the next stage boot loader. Of course the initial CDI is not a CDI at all, but a UDS (Unique Device Secret). This could be supplied by a PUF (Physically Unclonable Function) but does not need to be; as long as it is unique. wolfHSM is an excellent platform to securely store and sign this secret data. The same process is recursively repeated up the bootchain.
This creates an immutable chain of trust from hardware root secrets through firmware verification, enabling remote attestation and secure key provisioning for IoT devices. The observant reader will note that this differs from a conventional boot chain in that it allows for firmware later in the bootchain to verify the integrity of all the entities in the bootchain before it. Normally, entities in the boot chain only verify software images AFTER them in the boot process.
The specification supports and allows for a plethora of algorithms, notably DICE-compatible algorithms including ECDSA P-256, SHA-256, and Hash DRBG, making it ideal for resource-constrained embedded systems. For system integrators who have minimal binary footprint requirements, wolfCrypt can be built for Bare Metal ARM to support these algorithms within 30KB.
wolfBoot serves as an ideal secure bootloader for DICE-enabled systems, providing memory-efficient firmware authentication and update capabilities. The bootloader’s minimalist design and tiny HAL API also provides secure firmware update mechanisms.
Beyond wolfBoot, custom bootloaders can leverage the same optimized cryptographic implementations to build DICE-compatible secure boot solutions tailored to specific hardware platforms and security requirements.
Are you interested in seeing this work as part of your DICE bootchain? There is no need to wait any longer! Send a message to facts@wolfssl.com to register your interest in DICE with our team and raise the priority in our roadmap for wolfBoot and wolfHSM!
If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now
Live Webinar: Everything You Need to Know About Medical Device Cybersecurity – Tailored for the Asia-Pacific Time Zone
Elevate your cybersecurity strategy with proven solutions built for connected care.
Join us on September 4th at 5 PM PT / September 5th at 9 AM JST for a live webinar led by wolfSSL Senior Software Engineer Eric Blankenhorn. We’ll cover how to strengthen cybersecurity across the entire medical device ecosystem from implantables and patient monitors to bedside devices and cloud platforms. This session will highlight regulatory requirements, key security challenges, and how wolfSSL’s embedded solutions can help you address them.
Register now: Everything You Need to Know About Medical Device Cybersecurity
This webinar is tailored for the Asia-Pacific Time Zone
Date: September 4th | 5 PM PT / September 5th | 9 AM JST
In this webinar, Eric will dive into current cybersecurity threats in healthcare, industry trends, and the growing regulatory pressure on connected devices. Learn how wolfSSL’s lightweight, FIPS 140-3 validated cryptography and secure boot technology can help prevent tampering, conserve power, and support compliance with HIPAA, VA, and other mandates.
Register now to strengthen your security posture in connected healthcare.
As always, our webinar will include Q&A throughout. If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now
Weekly updates
Archives
- September 2025 (10)
- August 2025 (23)
- July 2025 (27)
- June 2025 (22)
- May 2025 (25)
- April 2025 (24)
- March 2025 (22)
- February 2025 (21)
- January 2025 (23)
- December 2024 (22)
- November 2024 (29)
- October 2024 (18)
- September 2024 (21)
- August 2024 (24)
- July 2024 (27)
- June 2024 (22)
- May 2024 (28)
- April 2024 (29)
- March 2024 (21)
- February 2024 (18)
- January 2024 (21)
- December 2023 (20)
- November 2023 (20)
- October 2023 (23)
- September 2023 (17)
- August 2023 (25)
- July 2023 (39)
- June 2023 (13)
- May 2023 (11)
- April 2023 (6)
- March 2023 (23)
- February 2023 (7)
- January 2023 (7)
- December 2022 (15)
- November 2022 (11)
- October 2022 (8)
- September 2022 (7)
- August 2022 (12)
- July 2022 (7)
- June 2022 (14)
- May 2022 (10)
- April 2022 (11)
- March 2022 (12)
- February 2022 (22)
- January 2022 (12)
- December 2021 (13)
- November 2021 (27)
- October 2021 (11)
- September 2021 (14)
- August 2021 (10)
- July 2021 (16)
- June 2021 (13)
- May 2021 (9)
- April 2021 (13)
- March 2021 (24)
- February 2021 (22)
- January 2021 (18)
- December 2020 (19)
- November 2020 (11)
- October 2020 (3)
- September 2020 (20)
- August 2020 (11)
- July 2020 (7)
- June 2020 (14)
- May 2020 (13)
- April 2020 (14)
- March 2020 (4)
- February 2020 (21)
- January 2020 (18)
- December 2019 (7)
- November 2019 (16)
- October 2019 (14)
- September 2019 (18)
- August 2019 (16)
- July 2019 (8)
- June 2019 (9)
- May 2019 (28)
- April 2019 (27)
- March 2019 (15)
- February 2019 (10)
- January 2019 (16)
- December 2018 (24)
- November 2018 (9)
- October 2018 (15)
- September 2018 (15)
- August 2018 (5)
- July 2018 (15)
- June 2018 (29)
- May 2018 (12)
- April 2018 (6)
- March 2018 (18)
- February 2018 (6)
- January 2018 (11)
- December 2017 (5)
- November 2017 (12)
- October 2017 (5)
- September 2017 (7)
- August 2017 (6)
- July 2017 (11)
- June 2017 (7)
- May 2017 (9)
- April 2017 (5)
- March 2017 (6)
- January 2017 (8)
- December 2016 (2)
- November 2016 (1)
- October 2016 (15)
- September 2016 (6)
- August 2016 (5)
- July 2016 (4)
- June 2016 (9)
- May 2016 (4)
- April 2016 (4)
- March 2016 (4)
- February 2016 (9)
- January 2016 (6)
- December 2015 (4)
- November 2015 (6)
- October 2015 (5)
- September 2015 (5)
- August 2015 (8)
- July 2015 (7)
- June 2015 (9)
- May 2015 (1)
- April 2015 (4)
- March 2015 (12)
- January 2015 (4)
- December 2014 (6)
- November 2014 (3)
- October 2014 (1)
- September 2014 (11)
- August 2014 (5)
- July 2014 (9)
- June 2014 (10)
- May 2014 (5)
- April 2014 (9)
- February 2014 (3)
- January 2014 (5)
- December 2013 (7)
- November 2013 (4)
- October 2013 (7)
- September 2013 (3)
- August 2013 (9)
- July 2013 (7)
- June 2013 (4)
- May 2013 (7)
- April 2013 (4)
- March 2013 (2)
- February 2013 (3)
- January 2013 (8)
- December 2012 (12)
- November 2012 (5)
- October 2012 (7)
- September 2012 (3)
- August 2012 (6)
- July 2012 (4)
- June 2012 (3)
- May 2012 (4)
- April 2012 (6)
- March 2012 (2)
- February 2012 (5)
- January 2012 (7)
- December 2011 (5)
- November 2011 (7)
- October 2011 (5)
- September 2011 (6)
- August 2011 (5)
- July 2011 (2)
- June 2011 (7)
- May 2011 (11)
- April 2011 (4)
- March 2011 (12)
- February 2011 (7)
- January 2011 (11)
- December 2010 (17)
- November 2010 (12)
- October 2010 (11)
- September 2010 (9)
- August 2010 (20)
- July 2010 (12)
- June 2010 (7)
- May 2010 (1)
- January 2010 (2)
- November 2009 (2)
- October 2009 (1)
- September 2009 (1)
- May 2009 (1)
- February 2009 (1)
- January 2009 (1)
- December 2008 (1)