profile
viewpoint
Mohit Chakraborty Mohit-Chakraborty @Microsoft Redmond WA I am a developer in the Visual Studio IDE team

Mohit-Chakraborty/AddProjectRefsToSolution 1

Add references of a project to the open solution

pharring/ComponentDiagnostics 1

A Visual Studio Extension to explore internal real-time diagnostics from the running IDE

Mohit-Chakraborty/Configs 0

Various config files

Mohit-Chakraborty/EventListener 0

Listener for solution and project events

Mohit-Chakraborty/Get-VSRegisteredEditors 0

PowerShell script to read the editor registration information for a VS installation

Mohit-Chakraborty/IVsPersistSolutionPropsExample 0

A sample project demonstrating the use of IVsPersistSolutionProps

push eventmicrosoft/VerifiableCredential-SDK-Android

beejones

commit sha a16bf0ce4a0c939d714d33a72d3aa193dc986325

Optimization 2 (2048 bytes) key caching in TokenSigner TokenSignerPerformanceTest 0 End sign 1015048 1 End sign 602171 2 End sign 594629 3 End sign 549991 4 End sign 571946 5 End sign 583125 6 End sign 569589 7 End sign 566123 8 End sign 550022 9 End sign 556867

view details

beejones

commit sha aaa408d5917d2f8d4eb7166548d5c154667ca9b4

Optimization 3 (2048 bytes) key caching in JwsToken TokenSignerPerformanceTest 0 End sign 993792 1 End sign 626872 2 End sign 732941 3 End sign 622190 4 End sign 868766 5 End sign 692800 6 End sign 605775 7 End sign 751347 8 End sign 637509 9 End sign 643523

view details

push time in a day

push eventmicrosoft/VerifiableCredential-SDK-Android

beejones

commit sha 52f56536b17eec1caddde06998b741a48527ff9b

Test performance of sign/verify primitives - reference data EllipticCurveSubtleCryptoPerformanceTest TokenSignerPerformanceTest 0 End sign 16182 End verify 89218 End sign 699976 1 End sign 2824 End verify 13399 End sign 594409 2 End sign 3182 End verify 11185 End sign 598249 3 End sign 3827 End verify 12607 End sign 579835 4 End sign 2387 End verify 7474 End sign 525478 5 End sign 2908 End verify 9780 End sign 579169 6 End sign 2721 End verify 7205 End sign 547622 7 End sign 2204 End verify 6016 End sign 531888 8 End sign 1833 End verify 6166 End sign 537859 9 End sign 991 End verify 5266 End sign 568293

view details

push time in a day

Pull request review commentmicrosoft/VerifiableCredential-SDK-Android

Test performance of sign/verify primitives

+/*---------------------------------------------------------------------------------------------+ *  Copyright (c) Microsoft Corporation. All rights reserved.+ *  Licensed under the MIT License. See License.txt in the project root for license information.+ *--------------------------------------------------------------------------------------------*/++package com.microsoft.did.sdk.crypto.plugins++import android.content.Context+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner+import androidx.test.platform.app.InstrumentationRegistry+import com.microsoft.did.sdk.credential.service.protectors.TokenSigner+import com.microsoft.did.sdk.crypto.CryptoOperations+import com.microsoft.did.sdk.crypto.keyStore.AndroidKeyStore+import com.microsoft.did.sdk.crypto.keys.ellipticCurve.EllipticCurvePairwiseKey+import com.microsoft.did.sdk.crypto.models.Sha+import com.microsoft.did.sdk.crypto.models.webCryptoApi.CryptoKeyPair+import com.microsoft.did.sdk.crypto.models.webCryptoApi.KeyUsage+import com.microsoft.did.sdk.crypto.models.webCryptoApi.W3cCryptoApiConstants+import com.microsoft.did.sdk.crypto.models.webCryptoApi.algorithms.EcKeyGenParams+import com.microsoft.did.sdk.di.defaultTestSerializer+import com.microsoft.did.sdk.identifier.IdentifierCreator+import com.microsoft.did.sdk.identifier.SidetreePayloadProcessor+import com.microsoft.did.sdk.identifier.models.Identifier+import kotlinx.serialization.json.Json+import org.assertj.core.api.Assertions.assertThat+import org.junit.Test+import org.junit.runner.RunWith+import com.microsoft.did.sdk.util.controlflow.Result+import com.microsoft.did.sdk.util.controlflow.Success++@RunWith(AndroidJUnit4ClassRunner::class)+class TokenSignerPerformanceTest {+    private val testName = "TokenSignerPerformanceTest"+    private val androidSubtle: AndroidSubtle+    private val ellipticCurveSubtleCrypto: EllipticCurveSubtleCrypto+    private val cryptoKeyPair: CryptoKeyPair+    private val keyReference = "KeyReference1"+    private val serializer = Json+    private val signer: TokenSigner+    private val cryptoOperations: CryptoOperations+    private val identifierCreator: IdentifierCreator++    init {+        println("PerfTest->(${getTestName()}) - Start init")+        val startTime = getStartTime()+        val context: Context = InstrumentationRegistry.getInstrumentation().targetContext+        val keyStore = AndroidKeyStore(context, defaultTestSerializer)+        androidSubtle = AndroidSubtle(keyStore)+        ellipticCurveSubtleCrypto = EllipticCurveSubtleCrypto(androidSubtle, defaultTestSerializer)+        cryptoKeyPair = ellipticCurveSubtleCrypto.generateKeyPair(+            EcKeyGenParams(+                namedCurve = W3cCryptoApiConstants.Secp256k1.value,+                additionalParams = mapOf(+                    "hash" to Sha.SHA256.algorithm,+                    "KeyReference" to keyReference+                )+            ), true, listOf(KeyUsage.Sign)+        )++        cryptoOperations = CryptoOperations(ellipticCurveSubtleCrypto, keyStore, EllipticCurvePairwiseKey())+        val sidetreePayloadProcessor = SidetreePayloadProcessor(defaultTestSerializer)+        identifierCreator = IdentifierCreator(cryptoOperations, sidetreePayloadProcessor)++        signer = TokenSigner(cryptoOperations, serializer)

I don't know if authenticator uses ahead of time or just in time compilation, but generally running once makes for an inaccurate perf assessment, in the case of JIT - you spend a lot of time not executing your code

absent a dedicated benchmarking framework, in the past I would benchmark by running the code once to ensure any JIT occurs, and then running in a 10k loop

beejones

comment created time in 3 days

push eventmicrosoft/VerifiableCredential-SDK-Android

nithyaganeshng

commit sha 73a7e66aad8b83e6d8715d878833a72a82d5d3cc

Update azure-pipelines.yml for Azure Pipelines

view details

push time in 3 days

push eventmicrosoft/VerifiableCredential-SDK-Android

nithyaganeshng

commit sha 3458751bd2c66a4d8dc6dab5f0f612e34798f608

Update azure-pipelines.yml for Azure Pipelines

view details

nithyaganeshng

commit sha e8dce995d2f909e5351822d37c17445deb9516d1

Merge pull request #133 from microsoft/azure-pipelines-add-triggers Update azure-pipelines.yml for Azure Pipelines

view details

push time in 3 days

push eventmicrosoft/VerifiableCredential-SDK-Android

nithyaganeshng

commit sha 46d79f496897c39f1dbad76a0c4faf150b891301

Update azure-pipelines.yml for Azure Pipelines

view details

nithyaganeshng

commit sha 15bb068c0417ce78c663ad7d24bf1535a682adcc

Merge pull request #132 from microsoft/azure-pipelines-remove-triggers Update azure-pipelines.yml for Azure Pipelines

view details

push time in 3 days

Pull request review commentmicrosoft/VerifiableCredential-SDK-Android

Test performance of sign/verify primitives

+/*---------------------------------------------------------------------------------------------+ *  Copyright (c) Microsoft Corporation. All rights reserved.+ *  Licensed under the MIT License. See License.txt in the project root for license information.+ *--------------------------------------------------------------------------------------------*/++package com.microsoft.did.sdk.crypto.plugins++import android.content.Context+import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner+import androidx.test.platform.app.InstrumentationRegistry+import com.microsoft.did.sdk.credential.service.protectors.TokenSigner+import com.microsoft.did.sdk.crypto.CryptoOperations+import com.microsoft.did.sdk.crypto.keyStore.AndroidKeyStore+import com.microsoft.did.sdk.crypto.keys.ellipticCurve.EllipticCurvePairwiseKey+import com.microsoft.did.sdk.crypto.models.Sha+import com.microsoft.did.sdk.crypto.models.webCryptoApi.CryptoKeyPair+import com.microsoft.did.sdk.crypto.models.webCryptoApi.KeyUsage+import com.microsoft.did.sdk.crypto.models.webCryptoApi.W3cCryptoApiConstants+import com.microsoft.did.sdk.crypto.models.webCryptoApi.algorithms.EcKeyGenParams+import com.microsoft.did.sdk.di.defaultTestSerializer+import com.microsoft.did.sdk.identifier.IdentifierCreator+import com.microsoft.did.sdk.identifier.SidetreePayloadProcessor+import com.microsoft.did.sdk.identifier.models.Identifier+import kotlinx.serialization.json.Json+import org.assertj.core.api.Assertions.assertThat+import org.junit.Test+import org.junit.runner.RunWith+import com.microsoft.did.sdk.util.controlflow.Result+import com.microsoft.did.sdk.util.controlflow.Success++@RunWith(AndroidJUnit4ClassRunner::class)+class TokenSignerPerformanceTest {+    private val testName = "TokenSignerPerformanceTest"+    private val androidSubtle: AndroidSubtle+    private val ellipticCurveSubtleCrypto: EllipticCurveSubtleCrypto+    private val cryptoKeyPair: CryptoKeyPair+    private val keyReference = "KeyReference1"+    private val serializer = Json+    private val signer: TokenSigner+    private val cryptoOperations: CryptoOperations+    private val identifierCreator: IdentifierCreator++    init {+        println("PerfTest->(${getTestName()}) - Start init")+        val startTime = getStartTime()+        val context: Context = InstrumentationRegistry.getInstrumentation().targetContext+        val keyStore = AndroidKeyStore(context, defaultTestSerializer)+        androidSubtle = AndroidSubtle(keyStore)+        ellipticCurveSubtleCrypto = EllipticCurveSubtleCrypto(androidSubtle, defaultTestSerializer)+        cryptoKeyPair = ellipticCurveSubtleCrypto.generateKeyPair(+            EcKeyGenParams(+                namedCurve = W3cCryptoApiConstants.Secp256k1.value,+                additionalParams = mapOf(+                    "hash" to Sha.SHA256.algorithm,+                    "KeyReference" to keyReference+                )+            ), true, listOf(KeyUsage.Sign)+        )++        cryptoOperations = CryptoOperations(ellipticCurveSubtleCrypto, keyStore, EllipticCurvePairwiseKey())+        val sidetreePayloadProcessor = SidetreePayloadProcessor(defaultTestSerializer)+        identifierCreator = IdentifierCreator(cryptoOperations, sidetreePayloadProcessor)++        signer = TokenSigner(cryptoOperations, serializer)+        println("PerfTest->(${getTestName()}) - End init: ${timer(startTime)}")+    }++    fun getTestName(): String {+        return this.testName+    }++    fun getStartTime(): Long {+        return System.nanoTime()+    }++    fun timer(start: Long): String {+        val timing = System.nanoTime() - start+        return (timing/1000).toString() + " μs"+    }+++    @Test+    fun signAndVerifySignatureTest() {+        val payload = "the Answer to the Ultimate Question of Life, the Universe, and Everything"+        val result: Result<Identifier> = identifierCreator.create("ION")+        println("PerfTest->(${getTestName()}) - Start sign")+        var startTime = getStartTime()+        when (result) {+            is Result.Success -> {+                // use result.payload (Identifier)+                val signedPayload = signer.signWithIdentifier(payload, result.payload)+                println("PerfTest->(${getTestName()}) - End sign: ${timer(startTime)}")+                println("PerfTest->(${getTestName()}) - Signed token: ${signedPayload}")+            }+        }++        println("PerfTest->(${getTestName()}) - Start verify")

TokenSigner class does only signing I believe. Can we remove print statements for verification here?

beejones

comment created time in 3 days

push eventmicrosoft/VerifiableCredential-SDK-Android

beejones

commit sha aca4dd721622395caf1190a499886c34665d2b10

Test performance of sign/verify primitives 2020-11-25 12:32:38.421 27702-27724/com.microsoft.did.sdk.test I/System.out: PerfTest->Start sign 2020-11-25 12:32:38.540 27702-27724/com.microsoft.did.sdk.test I/System.out: PerfTest->End sign: 118638 μs 2020-11-25 12:32:38.540 27702-27724/com.microsoft.did.sdk.test I/System.out: PerfTest->Start verify 2020-11-25 12:32:38.559 27702-27724/com.microsoft.did.sdk.test I/System.out: PerfTest->End verify: 137924 μs

view details

push time in 3 days

PR opened microsoft/VerifiableCredential-SDK-Android

Test performance of sign/verify primitives

Problem: Adding performance tests for the crypto primitives

Solution: Add special test so Logcat can show the performance with filter: PerfTest->

Validation: New unit tests

Type of change:

  • [ ] Feature work
  • [ ] Bug fix
  • [ ] Documentation
  • [ ] Engineering change
  • [x] Test
  • [ ] Logging/Telemetry

Risk:

  • [ ] High – Errors could cause MAJOR regression of many scenarios. (Example: new large features or high level infrastructure changes)
  • [ ] Medium – Errors could cause regression of 1 or more scenarios. (Example: somewhat complex bug fixes, small new features)
  • [x] Small – No issues are expected. (Example: Very small bug fixes, string changes, or configuration settings changes)
+123 -0

0 comment

1 changed file

pr created time in 3 days

delete branch microsoft/DMF

delete branch : personal/Merge20201120

delete time in 4 days

created tagmicrosoft/DMF

tagv1.1.78

Driver Module Framework

created time in 4 days

release microsoft/DMF

v1.1.78

released time in 4 days

push eventmicrosoft/DMF

Sam Tertzakian

commit sha 85c11a8c8e092e56dbdea8ca577b26baa7464abc

Merge20201120 (#143) 1. Add ability for Client driver to specify default WDFQUEUE options. 2. Correct issue in DMF_ContinuousRequestTarget that allowed for possible deletion of memory that still has open reference. 3. Add Kernel-mode support for DMF_File. 4. Add new Module DMF_NotifyUserWithRequestMultiple. 5. Add Methods to DMF_SptTarget to allow for transaction timeout. 6. Fix memory leak in User-mode version of DMF_HIdTarget. 7. Update documentation for DMF_BufferPool to clarify buffer enumeration. 8. Corresponding changes to documentation. * Update version file.

view details

push time in 4 days

PR merged microsoft/DMF

Merge20201120
  1. Add ability for Client driver to specify default WDFQUEUE options.
  2. Correct issue in DMF_ContinuousRequestTarget that allowed for possible deletion of memory that still has open reference.
  3. Add Kernel-mode support for DMF_File.
  4. Add new Module DMF_NotifyUserWithRequestMultiple.
  5. Add Methods to DMF_SpbTarget to allow for transaction timeout.
  6. Fix memory leak in User-mode version of DMF_HIdTarget.
  7. Update documentation for DMF_BufferPool to clarify buffer enumeration.
  8. Corresponding changes to documentation.
+2535 -214

0 comment

23 changed files

samtertzakian

pr closed time in 4 days

push eventmicrosoft/VerifiableCredential-SDK-Android

nithyaganeshng

commit sha 3458751bd2c66a4d8dc6dab5f0f612e34798f608

Update azure-pipelines.yml for Azure Pipelines

view details

push time in 4 days

push eventmicrosoft/VerifiableCredential-SDK-Android

nithyaganeshng

commit sha 46d79f496897c39f1dbad76a0c4faf150b891301

Update azure-pipelines.yml for Azure Pipelines

view details

push time in 4 days

delete branch microsoft/batch-processing-kit

delete branch : andwald/update_locales

delete time in 5 days

push eventmicrosoft/batch-processing-kit

Andrew Wald

commit sha f99a4ebdb945366bd0e81d3fc05ed6c42b5ecf58

Run.log to use UTF8 encoding. Bump locales for endpoint config validation. (#14) * Make RotatingFileHandler for the run.log happy with unicode characters. * Bump locales for endpoint config validation. We have added many new locales over the last year.

view details

push time in 5 days

PR merged microsoft/batch-processing-kit

Bump locales for endpoint config validation.

Update locales listing (hardcoded) for endpoint config validation. Many were added over the last year.

+12 -37

0 comment

3 changed files

anwald

pr closed time in 5 days

push eventmicrosoft/batch-processing-kit

Andrew Wald

commit sha a62b90bac75d0cd2076f5c13f01504e1381a73b7

Make RotatingFileHandler for the run.log happy with unicode characters.

view details

push time in 5 days

PR opened microsoft/batch-processing-kit

Bump locales for endpoint config validation.

Update locales listing (hardcoded) for endpoint config validation. Many were added over the last year.

+8 -34

0 comment

1 changed file

pr created time in 5 days

more